Sha256: 1dfbfe1218d5aad06aa22cf8461f596c79c0b3ce07ee06d11500ba3c0ea2fb06

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 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,
                                            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)
      else
        result.delete(:callback_url)
      end
      result
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
solidus_nexio-0.7.1 app/controllers/solidus_nexio/one_time_tokens_controller.rb
solidus_nexio-0.7.0 app/controllers/solidus_nexio/one_time_tokens_controller.rb