Class: SpreeAdyen::Webhooks::HandleEvent

Inherits:
Object
  • Object
show all
Defined in:
app/services/spree_adyen/webhooks/handle_event.rb

Instance Method Summary collapse

Constructor Details

#initialize(event_payload:) ⇒ HandleEvent

Returns a new instance of HandleEvent.



4
5
6
# File 'app/services/spree_adyen/webhooks/handle_event.rb', line 4

def initialize(event_payload:)
  @event_payload = event_payload
end

Instance Method Details

#callObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/spree_adyen/webhooks/handle_event.rb', line 8

def call
  # event not supported - skip
  if event_class.nil?
    Rails.logger.info("[SpreeAdyen][#{event_code}]: Skipping not supported event")
    return
  end

  Rails.logger.info("[SpreeAdyen][#{event_id}]: Event received")
  return unless event.code.in?(SpreeAdyen.event_handlers.keys)

  Rails.logger.info("[SpreeAdyen][#{event_id}]: Event queued")
  SpreeAdyen.event_handlers[event.code]
    .set(wait: SpreeAdyen::Config.webhook_delay_in_seconds.seconds)
    .perform_later(event.payload)
end

#eventObject



24
25
26
# File 'app/services/spree_adyen/webhooks/handle_event.rb', line 24

def event
  @event ||= event_class.new(event_data: event_payload)
end