class Iyzi::PkiBuilder

Constants

DEFAULT_ADD_METHOD

Attributes

ordered_keys[RW]
params[RW]

Public Class Methods

new(values = {}, ordered_keys = nil, type_cast = {}) click to toggle source
# File lib/iyzi/pki_builder.rb, line 7
def initialize(values = {}, ordered_keys = nil, type_cast = {})
  @params = {}
  assign_params(values, type_cast)
  @ordered_keys = ordered_keys
end

Public Instance Methods

add(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 60
def add(key, value)
  params[key] = value.to_s unless value.to_s.empty?
end
add_address(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 44
def add_address(key, value)
  add(key, PkiBuilders::Address.new(value).request_string)
end
add_array(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 32
def add_array(key, value)
  add(key, "[#{value.join(', ')}]") if value.present?
end
add_basket_items(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 48
def add_basket_items(key, value)
  add_array(key, PkiBuilders::BasketItems.new(value).request_array)
end
add_buyer(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 40
def add_buyer(key, value)
  add(key, PkiBuilders::Buyer.new(value).request_string)
end
add_date(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 36
def add_date(key, value)
  add(key, parse_date(value).strftime('%Y-%m-%d %H:%M:%S')) if value.present?
end
add_payment_card(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 52
def add_payment_card(key, value)
  add(key, PkiBuilders::PaymentCard.new(value).request_string)
end
add_price(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 28
def add_price(key, value)
  add(key, value.to_f.round(2)) if value.to_f != 0
end
add_store_card(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 56
def add_store_card(key, value)
  add(key, PkiBuilders::StoreCard.new(value).request_string)
end
convert_str(key, value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 64
def convert_str(key, value)
  "#{key}=#{value}"
end
ordered_params() click to toggle source
# File lib/iyzi/pki_builder.rb, line 22
def ordered_params
  orderer.map do |key|
    convert_str(key, params[key]) if params[key].present?
  end.reject(&:nil?)
end
parse_date(value) click to toggle source
# File lib/iyzi/pki_builder.rb, line 68
def parse_date(value)
  value.is_a?(String) ? DateTime.parse(value) : value
end
prepare_request_string() click to toggle source
# File lib/iyzi/pki_builder.rb, line 18
def prepare_request_string
  ordered_params.join(',')
end
request_string() click to toggle source
# File lib/iyzi/pki_builder.rb, line 13
def request_string
  str = prepare_request_string
  "[#{str}]" unless str.empty?
end

Private Instance Methods

adder(add_method) click to toggle source
# File lib/iyzi/pki_builder.rb, line 84
def adder(add_method)
  add_method || DEFAULT_ADD_METHOD
end
assign_params(values, type_cast) click to toggle source
# File lib/iyzi/pki_builder.rb, line 78
def assign_params(values, type_cast)
  values.each_pair do |key, value|
    send(adder(type_cast[key.to_sym]), key, value)
  end
end
orderer() click to toggle source
# File lib/iyzi/pki_builder.rb, line 74
def orderer
  ordered_keys || params.keys
end