Class: SpreeSquare::OrderWebhookJob

Inherits:
BaseJob
  • Object
show all
Defined in:
app/jobs/spree_square/order_webhook_job.rb

Overview

Handles order.updated and order.fulfillment.updated. Payload shapes verified against real Square test webhooks (not assumed from docs):

order.updated:            data.object.order_updated
                         { order_id, state, version, ... }
order.fulfillment.updated: data.object.order_fulfillment_updated
                         { order_id, version, fulfillment_update:
                           [{ fulfillment_uid, new_state, old_state }] }

Instance Method Summary collapse

Instance Method Details

#perform(webhook_event_id) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/jobs/spree_square/order_webhook_job.rb', line 16

def perform(webhook_event_id)
  event = SpreeSquare::WebhookEvent.find(webhook_event_id)

  case event.event_type
  when 'order.updated'
    handle_order_updated(event.payload)
  when 'order.fulfillment.updated'
    handle_fulfillment_updated(event.payload)
  end

  event.mark_processed!
end