class Fawry::FawryRequest

Constants

DEFAULT_OPTIONS

Attributes

action[R]
options[R]
params[R]
request[R]

Public Class Methods

new(action, params, opts) click to toggle source
# File lib/fawry/fawry_request.rb, line 9
def initialize(action, params, opts)
  @action = action
  @params = params
  @options = DEFAULT_OPTIONS.merge(opts)

  build_request
end

Private Instance Methods

build_request() click to toggle source

rubocop:disable Metrics/MethodLength rubocop:disable Metrics/AbcSize

# File lib/fawry/fawry_request.rb, line 21
def build_request
  case action
  when 'charge'
    self.class.include Requests::ChargeRequest
    validate_charge_params!
    @request = build_charge_request
  when 'refund'
    self.class.include Requests::RefundRequest
    validate_refund_params!
    @request = build_refund_request
  when 'payment_status'
    self.class.include Requests::PaymentStatusRequest
    validate_payment_status_params!
    @request = build_payment_status_request
  when 'create_card_token'
    self.class.include Requests::CreateCardTokenRequest
    validate_card_token_params!
    @request = build_create_card_token_request
  when 'list_tokens'
    self.class.include Requests::ListTokensRequest
    validate_list_tokens_params!
    @request = build_list_tokens_request
  when 'delete_token'
    self.class.include Requests::DeleteTokenRequest
    validate_delete_token_params!
    @request = build_delete_token_request
  end
  # rubocop:enable Metrics/AbcSize
  # rubocop:enable Metrics/MethodLength
end