Sha256: b7734a58f056a6e3f847c300baa9fd6016a0bd8ada71cd98c8978f7cb5a51e02

Contents?: true

Size: 863 Bytes

Versions: 2

Compression:

Stored size: 863 Bytes

Contents

module Spree
  module Api
    module V1
      class BraintreeClientTokenController < Spree::Api::BaseController
        skip_before_action :authenticate_user

        before_action :find_order, only: :create

        def create
          gateway = if params[:payment_method_id]
            Spree::Gateway::BraintreeVzeroBase.find(params[:payment_method_id])
          else
            Spree::Gateway::BraintreeVzeroBase.active.first
          end

          render json: {
            client_token: gateway.client_token(@order, @current_api_user),
            payment_method_id: gateway.id
          }
        end

        private

        # We're skipping permission check for order, because it is needed only to get a currency
        def find_order
          @order = Spree::Order.find_by(number: params[:order_number])
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spree_braintree_vzero-3.6.0 app/controllers/spree/api/v1/braintree_client_token_controller.rb
spree_braintree_vzero-3.5.1 app/controllers/spree/api/v1/braintree_client_token_controller.rb