Class: Iyzi::PkiBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/iyzi/pki_builder.rb

Constant Summary collapse

DEFAULT_ADD_METHOD =
'add'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values = {}, ordered_keys = nil, type_cast = {}) ⇒ PkiBuilder

Returns a new instance of PkiBuilder.



7
8
9
10
11
# 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

Instance Attribute Details

#ordered_keysObject

Returns the value of attribute ordered_keys.



5
6
7
# File 'lib/iyzi/pki_builder.rb', line 5

def ordered_keys
  @ordered_keys
end

#paramsObject

Returns the value of attribute params.



5
6
7
# File 'lib/iyzi/pki_builder.rb', line 5

def params
  @params
end

Instance Method Details

#add(key, value) ⇒ Object



60
61
62
# 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) ⇒ Object



44
45
46
# 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) ⇒ Object



32
33
34
# 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) ⇒ Object



48
49
50
# 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) ⇒ Object



40
41
42
# 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) ⇒ Object



36
37
38
# 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) ⇒ Object



52
53
54
# 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) ⇒ Object



28
29
30
# 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) ⇒ Object



56
57
58
# 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) ⇒ Object



64
65
66
# File 'lib/iyzi/pki_builder.rb', line 64

def convert_str(key, value)
  "#{key}=#{value}"
end

#ordered_paramsObject



22
23
24
25
26
# 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) ⇒ Object



68
69
70
# File 'lib/iyzi/pki_builder.rb', line 68

def parse_date(value)
  value.is_a?(String) ? DateTime.parse(value) : value
end

#prepare_request_stringObject



18
19
20
# File 'lib/iyzi/pki_builder.rb', line 18

def prepare_request_string
  ordered_params.join(',')
end

#request_stringObject



13
14
15
16
# File 'lib/iyzi/pki_builder.rb', line 13

def request_string
  str = prepare_request_string
  "[#{str}]" unless str.empty?
end