Class: RailsNexus::WebhookDelivery
- Inherits:
-
BaseRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- BaseRecord
- RailsNexus::WebhookDelivery
- Defined in:
- app/models/rails_nexus/webhook_delivery.rb
Constant Summary collapse
- STATUSES =
%w[pending success failed].freeze
Class Method Summary collapse
-
.log_failure!(url:, request_body:, error_message:, response_code: nil, response_body: nil, duration: nil, event_type: nil) ⇒ Object
Log a failed delivery.
-
.log_success!(url:, request_body:, response_code:, response_body:, duration:, event_type: nil) ⇒ Object
Log a successful delivery.
-
.summary ⇒ Object
Stats summary.
Instance Method Summary collapse
Methods inherited from BaseRecord
Class Method Details
.log_failure!(url:, request_body:, error_message:, response_code: nil, response_body: nil, duration: nil, event_type: nil) ⇒ Object
Log a failed delivery
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/models/rails_nexus/webhook_delivery.rb', line 33 def self.log_failure!(url:, request_body:, error_message:, response_code: nil, response_body: nil, duration: nil, event_type: nil) create!( url: url, status: "failed", request_body: request_body, response_code: response_code, response_body: response_body&.truncate(1000), error_message: , duration: duration, event_type: event_type ) end |
.log_success!(url:, request_body:, response_code:, response_body:, duration:, event_type: nil) ⇒ Object
Log a successful delivery
20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/models/rails_nexus/webhook_delivery.rb', line 20 def self.log_success!(url:, request_body:, response_code:, response_body:, duration:, event_type: nil) create!( url: url, status: "success", request_body: request_body, response_code: response_code, response_body: response_body&.truncate(1000), duration: duration, event_type: event_type ) end |
.summary ⇒ Object
Stats summary
47 48 49 50 51 52 53 54 |
# File 'app/models/rails_nexus/webhook_delivery.rb', line 47 def self.summary { total: count, successful: successful.count, failed: failed.count, last_delivery: recent.first } end |
Instance Method Details
#failed? ⇒ Boolean
56 57 58 |
# File 'app/models/rails_nexus/webhook_delivery.rb', line 56 def failed? status == "failed" end |
#success? ⇒ Boolean
60 61 62 |
# File 'app/models/rails_nexus/webhook_delivery.rb', line 60 def success? status == "success" end |