module CoinbaseCommerce::Webhook

Public Class Methods

construct_event(payload, sig_header, secret) click to toggle source

Analyze and construct appropriate event object based on webhook notification

# File lib/coinbase_commerce/webhooks.rb, line 6
def self.construct_event(payload, sig_header, secret)
  data = JSON.parse(payload, symbolize_names: true)
  if data.key?(:event)
    WebhookSignature.verify_header(payload, sig_header, secret)
    CoinbaseCommerce::APIResources::Event.create_from(data[:event])
  else
    raise CoinbaseCommerce::Errors::WebhookInvalidPayload.new("no event in payload",
                                                              sig_header, http_body: payload)
  end
end