Sha256: fc593007a61897c9806293feed0dbbb7cc3b534149bef99e31dba1a90b569731

Contents?: true

Size: 642 Bytes

Versions: 7

Compression:

Stored size: 642 Bytes

Contents

# frozen_string_literal: true

require "solidus_stripe/webhook/event"
require "stripe"

module SolidusStripe
  class WebhooksController < Spree::BaseController
    SIGNATURE_HEADER = "HTTP_STRIPE_SIGNATURE"

    skip_before_action :verify_authenticity_token, only: :create

    respond_to :json

    def create
      event = Webhook::Event.from_request(payload: request.body.read, signature_header: signature_header,
        slug: params[:slug])
      return head(:bad_request) unless event

      Spree::Bus.publish(event) && head(:ok)
    end

    private

    def signature_header
      request.headers[SIGNATURE_HEADER]
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
solidus_stripe-5.0.2 app/controllers/solidus_stripe/webhooks_controller.rb
solidus_stripe-5.0.1 app/controllers/solidus_stripe/webhooks_controller.rb
solidus_stripe-5.0.0 app/controllers/solidus_stripe/webhooks_controller.rb
solidus_stripe-5.0.0.rc.3 app/controllers/solidus_stripe/webhooks_controller.rb
solidus_stripe-5.0.0.rc.2 app/controllers/solidus_stripe/webhooks_controller.rb
solidus_stripe-5.0.0.rc.1 app/controllers/solidus_stripe/webhooks_controller.rb
solidus_stripe-5.0.0.alpha.1 app/controllers/solidus_stripe/webhooks_controller.rb