Class: SlackInviteWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
app/workers/slack_invite_worker.rb

Instance Method Summary collapse

Instance Method Details

#perform(questionnaire_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/workers/slack_invite_worker.rb', line 6

def perform(questionnaire_id)
  questionnaire = Questionnaire.find(questionnaire_id)
  email = questionnaire.email
  first_name = questionnaire.first_name
  last_name = questionnaire.last_name
  json = query_api('users.admin.invite', "&email=#{email}&first_name=#{first_name}&last_name=#{last_name}&set_active=true")

  return if json[:ok]

  if json[:error]
    return if ok_errors.include?(json[:error])
    return attempt_manual_invite(questionnaire.id, email) if use_manual_errors.include?(json[:error])
    raise "Slack error: #{json[:error]}"
  end

  raise "Failed to invite to Slack."
end