lib/six_saferpay/api/six_transaction/requests/authorize_direct.rb
module SixSaferpay
module SixTransaction
class AuthorizeDirect
attr_accessor(:request_header,
:terminal_id,
:payment,
:payment_means,
:authentication,
:register_alias,
:payer,
:order,
:risk_factors
)
def initialize(request_header: nil,
terminal_id: nil,
payment:,
payment_means:,
authentication: nil,
register_alias: nil,
payer: nil,
order: nil,
risk_factors: nil
)
@request_header = request_header || SixSaferpay::RequestHeader.new()
@terminal_id = SixSaferpay.config.terminal_id || terminal_id
@payment = SixSaferpay::Payment.new(**payment.to_h) if payment
@payment_means = SixSaferpay::RequestPaymentMeans.new(**payment_means.to_h) if payment_means
@authentication = SixSaferpay::Authentication.new(**authentication.to_h) if authentication
@register_alias = SixSaferpay::RegisterAlias.new(**register_alias.to_h) if register_alias
@payer = SixSaferpay::Payer.new(**payer.to_h) if payer
@order = SixSaferpay::Order.new(**order.to_h) if order
@risk_factors = SixSaferpay::RiskFactors.new(**risk_factors.to_h) if risk_factors
end
def to_hash
hash = Hash.new
hash.merge!(request_header: @request_header.to_h) if @register_alias
hash.merge!(terminal_id: @terminal_id) if @terminal_id
hash.merge!(payment: @payment.to_h) if @payment
hash.merge!(payment_means: @payment_means.to_h) if @payment_means
hash.merge!(authentication: @authentication.to_h) if @authentication
hash.merge!(register_alias: @register_alias.to_h) if @register_alias
hash.merge!(payer: @payer.to_h) if @payer
hash.merge!(order: @order.to_h) if @order
hash.merge!(risk_factors: @risk_factors.to_h) if @risk_factors
hash
end
alias_method :to_h, :to_hash
def to_json
to_hash.to_json
end
def url
'/Payment/v1/Transaction/AuthorizeDirect'
end
def response_class
SixSaferpay::SixTransaction::AuthorizeDirectResponse
end
end
end
end