Class: DigiwinDsp::Webhooks::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/digiwin_dsp/webhooks/event.rb

Overview

Base value-object for an inbound DSP webhook event. Subclasses add action-specific accessors over the ‘request` payload but share the JSON-parse + envelope-extract logic that lives here.

Direct Known Subclasses

InventoryUpdate, InvoiceUpdate, LogisticsUpdate

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(digi_header:, request:, raw:) ⇒ Event

Returns a new instance of Event.



35
36
37
38
39
# File 'lib/digiwin_dsp/webhooks/event.rb', line 35

def initialize(digi_header:, request:, raw:)
  @digi_header = digi_header
  @request = request
  @raw = raw
end

Instance Attribute Details

#digi_headerObject (readonly)

Returns the value of attribute digi_header.



11
12
13
# File 'lib/digiwin_dsp/webhooks/event.rb', line 11

def digi_header
  @digi_header
end

#rawObject (readonly)

Returns the value of attribute raw.



11
12
13
# File 'lib/digiwin_dsp/webhooks/event.rb', line 11

def raw
  @raw
end

#requestObject (readonly)

Returns the value of attribute request.



11
12
13
# File 'lib/digiwin_dsp/webhooks/event.rb', line 11

def request
  @request
end

Class Method Details

.parse(raw_body) ⇒ Object



13
14
15
16
17
# File 'lib/digiwin_dsp/webhooks/event.rb', line 13

def self.parse(raw_body)
  hash = parse_json(raw_body)
  request = extract_request(hash)
  new(digi_header: hash["digi_header"] || {}, request: request, raw: hash)
end