Class: MailerLog::WebhooksController
- Inherits:
-
ActionController::Base
- Object
- ActionController::Base
- MailerLog::WebhooksController
- Defined in:
- app/controllers/mailer_log/webhooks_controller.rb
Instance Method Summary collapse
-
#mailgun ⇒ Object
POST /mailer_log/webhooks/mailgun.
Instance Method Details
#mailgun ⇒ Object
POST /mailer_log/webhooks/mailgun
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/mailer_log/webhooks_controller.rb', line 11 def mailgun event_data = (params['event-data'] || params).to_unsafe_h.with_indifferent_access email = find_email(event_data) unless email Rails.logger.info("MailerLog: Email not found for webhook event") return head :ok end normalized_event = normalize_event_type(event_data['event']) create_event(email, event_data, normalized_event) email.update_status_from_event!(normalized_event) head :ok rescue StandardError => e Rails.logger.error("MailerLog webhook error: #{e.message}") Rails.logger.error(e.backtrace.first(5).join("\n")) report_error(e) head :ok # Return 200 to prevent Mailgun retries for processing errors end |