Class: SmSmsCampaignWebhook::CampaignEngagementOperation

Inherits:
Object
  • Object
show all
Defined in:
app/operations/sm_sms_campaign_webhook/campaign_engagement_operation.rb

Overview

Handles campaign engagement payload data modeling and processing.

Class Method Summary collapse

Class Method Details

.process(payload:) ⇒ Object

Models the campaign engagement payload and hands of processing of the data to the processor.

Parameters:

  • payload (Hash)

    Deserialized SMS campaign engagement payload

Raises:

See Also:



12
13
14
15
16
17
18
19
20
21
22
# File 'app/operations/sm_sms_campaign_webhook/campaign_engagement_operation.rb', line 12

def self.process(payload:)
  logger.debug "#{name} - Processing campaign engagement payload: #{payload.inspect}"

  if payload.fetch("type") != "campaign.engagement"
    raise PayloadDispatchError,
      "dispatched payload different from campaign.engagement #{payload.inspect}"
  end

  campaign_engagement = CampaignEngagement.new(payload: payload)
  processor.process_campaign_engagement(campaign_engagement)
end

.processorProcessable

Returns Configured SMS campaign payload processor.

Returns:

  • (Processable)

    Configured SMS campaign payload processor

See Also:



26
27
28
# File 'app/operations/sm_sms_campaign_webhook/campaign_engagement_operation.rb', line 26

def self.processor
  @processor ||= SmSmsCampaignWebhook.processor
end