Sha256: 246779f4305a4cb29ab9b62d2bb191e1af5d820b22b08a5e8b34e96124c139b9

Contents?: true

Size: 749 Bytes

Versions: 6

Compression:

Stored size: 749 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

      if 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

6 entries across 6 versions & 1 rubygems

Version Path
stripe-rails-1.7.1 app/models/stripe/event_dispatch.rb
stripe-rails-1.7.0 app/models/stripe/event_dispatch.rb
stripe-rails-1.6.1 app/models/stripe/event_dispatch.rb
stripe-rails-1.6.0 app/models/stripe/event_dispatch.rb
stripe-rails-1.5.5 app/models/stripe/event_dispatch.rb
stripe-rails-1.5.4 app/models/stripe/event_dispatch.rb