class ShopifyWebhook::Endpoint

Attributes

secret[R]

Public Class Methods

new(secret) click to toggle source
# File lib/shopify_webhook/endpoint.rb, line 4
def initialize(secret)
  @secret = secret
end

Public Instance Methods

call(env) click to toggle source
# File lib/shopify_webhook/endpoint.rb, line 8
def call(env)
  request = Rack::Request.new env

  if ShopifyWebhook::Verifier.new(request, secret).call
    instrument 'notification.shopify.webhook', json: json(request)
    [200, {}, ['']]
  else
    [400, {}, ['']]
  end
end

Private Instance Methods

json(request) click to toggle source
# File lib/shopify_webhook/endpoint.rb, line 23
def json(request)
  request.body.rewind
  MultiJson.load request.body.read
end