class ZipMoney::Checkout
Attributes
params[RW]
Public Class Methods
new()
click to toggle source
Initializes a ZipMoney::Checkout
object
Returns ZipMoney::Checkout
object
# File lib/zipMoney/api/checkout.rb, line 13 def initialize @params = Struct::CheckoutParams.new @params.order = Struct::Order.new @params.billing_address = Struct::Address.new @params.shipping_address = Struct::Address.new @params.consumer = Struct::Consumer.new @params.metadata = Struct::Metadata.new @params.version = Struct::Version.new @params.order.detail = Array.new end
Public Instance Methods
do()
click to toggle source
Performs the Checkout
api call on zipMoney endpoint
Returns ZipMoney::Checkout
object
# File lib/zipMoney/api/checkout.rb, line 27 def do validate ZipMoney.api.checkout(self.params) end
validate()
click to toggle source
Performs the parameters validation
# File lib/zipMoney/api/checkout.rb, line 33 def validate raise ArgumentError, "Params emtpy" if @params.nil? @errors = [] @errors << 'charge must be provided' if @params.charge.nil? @errors << 'currency_code must be provided' if @params.currency_code.nil? @errors << 'order_id must be provided' if @params.order_id.nil? @errors << 'order must be provided' if @params.order.nil? @errors << 'order.id must be provided' if @params.order.id.nil? @errors << 'order.total must be provided' if @params.order.total.nil? @errors << 'order.shipping_value must be provided' if @params.order.shipping_value.nil? @errors << 'order.tax must be provided' if @params.order.tax.nil? @errors << 'order detail must be provided' unless @params.order.detail.length > 0 validate_item_details @params.order.detail if @params.order.detail.length > 0 raise ZipMoney::RequestError.new("Following error(s) occurred while making request, please resolve them to make the request: #{@errors}") if @errors.any? end