Sha256: d270d4f2b7cb21ae63bbdcdbde613897779ae1472f45e016deb551566f6195fa

Contents?: true

Size: 882 Bytes

Versions: 4

Compression:

Stored size: 882 Bytes

Contents

require 'stripe/event'
module Stripe
  module EventDispatch
    def dispatch_stripe_event(request)
      retrieve_stripe_event(request) do |evt|
        target = evt.data.object
        ::Stripe::Callbacks.run_callbacks(evt, target)
      end
    end

    def retrieve_stripe_event(request)
      id = request['id']
      body = request.body.read
      sig_header = request.headers['HTTP_STRIPE_SIGNATURE']
      endpoint_secret = ::Rails.application.config.stripe.signing_secret

      # this is a webhook test
      if id == 'evt_00000000000000'
        event = Stripe::Event.construct_from(JSON.parse(body))
      elsif Object.const_defined?('Stripe::Webhook') && sig_header && endpoint_secret
        event = ::Stripe::Webhook.construct_event(body, sig_header, endpoint_secret)
      else
        event = Stripe::Event.retrieve(id)
      end

      yield event
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
stripe-rails-1.5.3 app/models/stripe/event_dispatch.rb
stripe-rails-1.5.2 app/models/stripe/event_dispatch.rb
stripe-rails-1.5.1 app/models/stripe/event_dispatch.rb
stripe-rails-1.5.0 app/models/stripe/event_dispatch.rb