demarches-normaliennes/app/jobs/web_hook_job.rb
2024-08-22 09:26:48 +02:00

26 lines
730 B
Ruby

# frozen_string_literal: true
class WebHookJob < ApplicationJob
queue_as :webhooks_v1
TIMEOUT = 10
def perform(procedure_id, dossier_id, state, updated_at)
body = {
procedure_id: procedure_id,
dossier_id: dossier_id,
state: state,
updated_at: updated_at
}
procedure = Procedure.find(procedure_id)
response = Typhoeus.post(procedure.web_hook_url, body: body, timeout: TIMEOUT)
if !response.success?
Sentry.set_tags(procedure: procedure_id, dossier: dossier_id)
Sentry.set_extras(web_hook_url: procedure.web_hook_url)
Sentry.capture_message("Webhook error code: #{response.code} (#{response.return_message}) // Response: #{response.body}")
end
end
end