Sha256: 6f8865d53e2dc188e8073475ef8cc1a94631205b48a60089ed5f0868600541c2

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module SolidusNexio
  class OneTimeTokensController < BasePaymentController
    def create
      result = payment_method.generate_token(one_time_token_params)
      if result
        render json: { data: result }, status: 201
      else
        head 422
      end
    end

    private

    def one_time_token_params
      result = params.require(:data).permit(:currency, :callback_url, :request_domain,
                                            address: %i[address1 address2 city country phone zip state],
                                            billing_address: %i[address1 address2 city country phone zip state],
                                            customer: %i[first_name last_name email],
                                            order: %i[number date]).to_h.deep_symbolize_keys

      if payment_method.is_a?(AlternativePaymentMethod)
        result[:callback_url] ||= capture_payment_method_alternative_payments_url(payment_method)
        result[:request_domain] ||= request_domain
      else
        result.delete(:callback_url)
      end
      result
    end

    def request_domain
      request.domain(7)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
solidus_nexio-1.0.1 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-1.0.0 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.12 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.11 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.10 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.9 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.8 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.7 app/controllers/solidus_nexio/one_time_tokens_controller.rb