Class: Sendly::Webhook
- Inherits:
-
Object
- Object
- Sendly::Webhook
- Defined in:
- lib/sendly/types.rb
Overview
Represents a configured webhook endpoint
Direct Known Subclasses
Constant Summary collapse
- CIRCUIT_STATES =
Circuit state constants
%w[closed open half_open].freeze
- MODES =
Webhook mode constants
%w[all test live].freeze
Instance Attribute Summary collapse
-
#api_version ⇒ Object
readonly
Returns the value of attribute api_version.
-
#circuit_opened_at ⇒ Object
readonly
Returns the value of attribute circuit_opened_at.
-
#circuit_state ⇒ Object
readonly
Returns the value of attribute circuit_state.
-
#created_at ⇒ Object
readonly
Returns the value of attribute created_at.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#events ⇒ Object
readonly
Returns the value of attribute events.
-
#failure_count ⇒ Object
readonly
Returns the value of attribute failure_count.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#is_active ⇒ Object
readonly
Returns the value of attribute is_active.
-
#last_delivery_at ⇒ Object
readonly
Returns the value of attribute last_delivery_at.
-
#last_failure_at ⇒ Object
readonly
Returns the value of attribute last_failure_at.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#mode ⇒ Object
readonly
Returns the value of attribute mode.
-
#success_rate ⇒ Object
readonly
Returns the value of attribute success_rate.
-
#successful_deliveries ⇒ Object
readonly
Returns the value of attribute successful_deliveries.
-
#total_deliveries ⇒ Object
readonly
Returns the value of attribute total_deliveries.
-
#updated_at ⇒ Object
readonly
Returns the value of attribute updated_at.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
- #active? ⇒ Boolean
- #circuit_open? ⇒ Boolean
-
#initialize(data) ⇒ Webhook
constructor
A new instance of Webhook.
- #to_h ⇒ Object
Constructor Details
#initialize(data) ⇒ Webhook
Returns a new instance of Webhook.
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 |
# File 'lib/sendly/types.rb', line 252 def initialize(data) @id = data["id"] @url = data["url"] @events = data["events"] || [] @description = data["description"] @mode = data["mode"] || "all" # Handle both snake_case API response and camelCase @is_active = data["is_active"] || data["isActive"] || false @failure_count = data["failure_count"] || data["failureCount"] || 0 @last_failure_at = parse_time(data["last_failure_at"] || data["lastFailureAt"]) @circuit_state = data["circuit_state"] || data["circuitState"] || "closed" @circuit_opened_at = parse_time(data["circuit_opened_at"] || data["circuitOpenedAt"]) @api_version = data["api_version"] || data["apiVersion"] || "2024-01" @metadata = data["metadata"] || {} @created_at = parse_time(data["created_at"] || data["createdAt"]) @updated_at = parse_time(data["updated_at"] || data["updatedAt"]) @total_deliveries = data["total_deliveries"] || data["totalDeliveries"] || 0 @successful_deliveries = data["successful_deliveries"] || data["successfulDeliveries"] || 0 @success_rate = data["success_rate"] || data["successRate"] || 0 @last_delivery_at = parse_time(data["last_delivery_at"] || data["lastDeliveryAt"]) end |
Instance Attribute Details
#api_version ⇒ Object (readonly)
Returns the value of attribute api_version.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def api_version @api_version end |
#circuit_opened_at ⇒ Object (readonly)
Returns the value of attribute circuit_opened_at.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def circuit_opened_at @circuit_opened_at end |
#circuit_state ⇒ Object (readonly)
Returns the value of attribute circuit_state.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def circuit_state @circuit_state end |
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def created_at @created_at end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def description @description end |
#events ⇒ Object (readonly)
Returns the value of attribute events.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def events @events end |
#failure_count ⇒ Object (readonly)
Returns the value of attribute failure_count.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def failure_count @failure_count end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def id @id end |
#is_active ⇒ Object (readonly)
Returns the value of attribute is_active.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def is_active @is_active end |
#last_delivery_at ⇒ Object (readonly)
Returns the value of attribute last_delivery_at.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def last_delivery_at @last_delivery_at end |
#last_failure_at ⇒ Object (readonly)
Returns the value of attribute last_failure_at.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def last_failure_at @last_failure_at end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def @metadata end |
#mode ⇒ Object (readonly)
Returns the value of attribute mode.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def mode @mode end |
#success_rate ⇒ Object (readonly)
Returns the value of attribute success_rate.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def success_rate @success_rate end |
#successful_deliveries ⇒ Object (readonly)
Returns the value of attribute successful_deliveries.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def successful_deliveries @successful_deliveries end |
#total_deliveries ⇒ Object (readonly)
Returns the value of attribute total_deliveries.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def total_deliveries @total_deliveries end |
#updated_at ⇒ Object (readonly)
Returns the value of attribute updated_at.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def updated_at @updated_at end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
241 242 243 |
# File 'lib/sendly/types.rb', line 241 def url @url end |
Instance Method Details
#active? ⇒ Boolean
274 275 276 |
# File 'lib/sendly/types.rb', line 274 def active? is_active end |
#circuit_open? ⇒ Boolean
278 279 280 |
# File 'lib/sendly/types.rb', line 278 def circuit_open? circuit_state == "open" end |
#to_h ⇒ Object
282 283 284 285 286 287 288 289 290 |
# File 'lib/sendly/types.rb', line 282 def to_h { id: id, url: url, events: events, description: description, is_active: is_active, failure_count: failure_count, circuit_state: circuit_state, api_version: api_version, metadata: , total_deliveries: total_deliveries, successful_deliveries: successful_deliveries, success_rate: success_rate }.compact end |