tangocard-raas 1.1.2 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +28 -175
  3. data/README.md +38 -525
  4. data/lib/raas.rb +32 -19
  5. data/lib/raas/api_helper.rb +146 -54
  6. data/lib/raas/configuration.rb +22 -30
  7. data/lib/raas/controllers/accounts_controller.rb +146 -92
  8. data/lib/raas/controllers/base_controller.rb +32 -29
  9. data/lib/raas/controllers/catalog_controller.rb +31 -14
  10. data/lib/raas/controllers/customers_controller.rb +113 -72
  11. data/lib/raas/controllers/exchange_rates_controller.rb +40 -12
  12. data/lib/raas/controllers/fund_controller.rb +345 -0
  13. data/lib/raas/controllers/orders_controller.rb +166 -105
  14. data/lib/raas/controllers/status_controller.rb +31 -14
  15. data/lib/raas/exceptions/api_exception.rb +4 -2
  16. data/lib/raas/exceptions/raas_client_exception.rb +14 -12
  17. data/lib/raas/exceptions/raas_generic_exception.rb +9 -9
  18. data/lib/raas/exceptions/raas_server_exception.rb +14 -12
  19. data/lib/raas/http/auth/basic_auth.rb +7 -4
  20. data/lib/raas/http/faraday_client.rb +19 -7
  21. data/lib/raas/http/http_call_back.rb +11 -6
  22. data/lib/raas/http/http_client.rb +50 -32
  23. data/lib/raas/http/http_context.rb +5 -2
  24. data/lib/raas/http/http_method_enum.rb +6 -2
  25. data/lib/raas/http/http_request.rb +7 -3
  26. data/lib/raas/http/http_response.rb +3 -1
  27. data/lib/raas/models/account_model.rb +32 -23
  28. data/lib/raas/models/account_summary_model.rb +26 -17
  29. data/lib/raas/models/base_model.rb +11 -9
  30. data/lib/raas/models/billing_address_model.rb +105 -0
  31. data/lib/raas/models/brand_model.rb +39 -35
  32. data/lib/raas/models/catalog_model.rb +15 -13
  33. data/lib/raas/models/create_account_request_model.rb +14 -14
  34. data/lib/raas/models/create_credit_card_request_model.rb +96 -0
  35. data/lib/raas/models/create_customer_request_model.rb +12 -12
  36. data/lib/raas/models/create_order_request_model.rb +45 -35
  37. data/lib/raas/models/credit_card_model.rb +124 -0
  38. data/lib/raas/models/currency_breakdown_model.rb +18 -18
  39. data/lib/raas/models/customer_model.rb +24 -22
  40. data/lib/raas/models/deposit_request_model.rb +60 -0
  41. data/lib/raas/models/deposit_response_model.rb +80 -0
  42. data/lib/raas/models/exchange_rate_model.rb +18 -17
  43. data/lib/raas/models/exchange_rate_response_model.rb +17 -15
  44. data/lib/raas/models/full_name_email_model.rb +42 -0
  45. data/lib/raas/models/get_deposit_response_model.rb +80 -0
  46. data/lib/raas/models/get_orders_response_model.rb +16 -14
  47. data/lib/raas/models/item_model.rb +36 -34
  48. data/lib/raas/models/name_email_model.rb +14 -14
  49. data/lib/raas/models/new_credit_card_model.rb +51 -0
  50. data/lib/raas/models/order_model.rb +124 -92
  51. data/lib/raas/models/order_summary_model.rb +155 -0
  52. data/lib/raas/models/page_model.rb +16 -16
  53. data/lib/raas/models/raas_client_error_model.rb +16 -16
  54. data/lib/raas/models/raas_server_error_model.rb +12 -12
  55. data/lib/raas/models/resend_order_response_model.rb +11 -11
  56. data/lib/raas/models/reward_credential_model.rb +14 -14
  57. data/lib/raas/models/reward_model.rb +16 -14
  58. data/lib/raas/models/system_status_response_model.rb +10 -10
  59. data/lib/raas/models/unregister_credit_card_request_model.rb +51 -0
  60. data/lib/raas/models/unregister_credit_card_response_model.rb +53 -0
  61. data/lib/raas/raas_client.rb +36 -25
  62. data/test/controllers/controller_test_base.rb +31 -0
  63. data/test/controllers/test_accounts_controller.rb +79 -0
  64. data/test/controllers/test_catalog_controller.rb +65 -0
  65. data/test/controllers/test_customers_controller.rb +61 -0
  66. data/test/controllers/test_exchange_rates_controller.rb +35 -0
  67. data/test/controllers/test_fund_controller.rb +108 -0
  68. data/test/controllers/test_orders_controller.rb +86 -0
  69. data/test/controllers/test_status_controller.rb +27 -0
  70. data/test/http_response_catcher.rb +16 -0
  71. data/test/test_helper.rb +91 -0
  72. metadata +32 -10
@@ -1,22 +1,22 @@
1
- # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
2
3
 
3
4
  module Raas
5
+ # Represents the response from the get orders call
4
6
  class GetOrdersResponseModel < BaseModel
5
7
  # Pagination information
6
8
  # @return [PageModel]
7
9
  attr_accessor :page
8
10
 
9
11
  # An array of orders
10
- # @return [List of OrderModel]
12
+ # @return [List of OrderSummaryModel]
11
13
  attr_accessor :orders
12
14
 
13
- # A mapping from model property names to API property names
15
+ # A mapping from model property names to API property names.
14
16
  def self.names
15
- if @_hash.nil?
16
- @_hash = {}
17
- @_hash["page"] = "page"
18
- @_hash["orders"] = "orders"
19
- end
17
+ @_hash = {} if @_hash.nil?
18
+ @_hash['page'] = 'page'
19
+ @_hash['orders'] = 'orders'
20
20
  @_hash
21
21
  end
22
22
 
@@ -26,20 +26,22 @@ module Raas
26
26
  @orders = orders
27
27
  end
28
28
 
29
- # Creates an instance of the object from a hash
29
+ # Creates an instance of the object from a hash.
30
30
  def self.from_hash(hash)
31
31
  return nil unless hash
32
32
 
33
- # Extract variables from the hash
33
+ # Extract variables from the hash.
34
34
  page = PageModel.from_hash(hash['page']) if hash['page']
35
35
  # Parameter is an array, so we need to iterate through it
36
36
  orders = nil
37
- if hash['orders'] != nil
38
- orders = Array.new
39
- hash['orders'].each{|structure| orders << (OrderModel.from_hash(structure) if structure)}
37
+ unless hash['orders'].nil?
38
+ orders = []
39
+ hash['orders'].each do |structure|
40
+ orders << (OrderSummaryModel.from_hash(structure) if structure)
41
+ end
40
42
  end
41
43
 
42
- # Create object from extracted values
44
+ # Create object from extracted values.
43
45
  GetOrdersResponseModel.new(page,
44
46
  orders)
45
47
  end
@@ -1,73 +1,73 @@
1
- # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
2
3
 
3
4
  require 'date'
4
5
  module Raas
6
+ # Represents an item
5
7
  class ItemModel < BaseModel
6
- # UTID
8
+ # The UTID
7
9
  # @return [String]
8
10
  attr_accessor :utid
9
11
 
10
- # Reward Name
12
+ # The reward name
11
13
  # @return [String]
12
14
  attr_accessor :reward_name
13
15
 
14
- # Currency Code
16
+ # The currency code
15
17
  # @return [String]
16
18
  attr_accessor :currency_code
17
19
 
18
- # Status
20
+ # The item's status
19
21
  # @return [String]
20
22
  attr_accessor :status
21
23
 
22
- # Value Type (fixed/variable)
24
+ # The item's value type (VARIABLE_VALUE or FIXED_VALUE)
23
25
  # @return [String]
24
26
  attr_accessor :value_type
25
27
 
26
- # Reward Type
28
+ # The reward type
27
29
  # @return [String]
28
30
  attr_accessor :reward_type
29
31
 
30
- # Date Created
32
+ # The date the item was created
31
33
  # @return [DateTime]
32
34
  attr_accessor :created_date
33
35
 
34
- # Last Updated
36
+ # The date the item was last updated
35
37
  # @return [DateTime]
36
38
  attr_accessor :last_update_date
37
39
 
38
- # Countries
40
+ # The countries this item is valid in
39
41
  # @return [List of String]
40
42
  attr_accessor :countries
41
43
 
42
- # Minimum Value (for variable value items)
44
+ # The minimum orderable value (for variable value items)
43
45
  # @return [Float]
44
46
  attr_accessor :min_value
45
47
 
46
- # Maximum Value (for variable value items)
48
+ # The maximum orderable value (for variable value items)
47
49
  # @return [Float]
48
50
  attr_accessor :max_value
49
51
 
50
- # Face Value
52
+ # The face value of the gift card
51
53
  # @return [Float]
52
54
  attr_accessor :face_value
53
55
 
54
- # A mapping from model property names to API property names
56
+ # A mapping from model property names to API property names.
55
57
  def self.names
56
- if @_hash.nil?
57
- @_hash = {}
58
- @_hash["utid"] = "utid"
59
- @_hash["reward_name"] = "rewardName"
60
- @_hash["currency_code"] = "currencyCode"
61
- @_hash["status"] = "status"
62
- @_hash["value_type"] = "valueType"
63
- @_hash["reward_type"] = "rewardType"
64
- @_hash["created_date"] = "createdDate"
65
- @_hash["last_update_date"] = "lastUpdateDate"
66
- @_hash["countries"] = "countries"
67
- @_hash["min_value"] = "minValue"
68
- @_hash["max_value"] = "maxValue"
69
- @_hash["face_value"] = "faceValue"
70
- end
58
+ @_hash = {} if @_hash.nil?
59
+ @_hash['utid'] = 'utid'
60
+ @_hash['reward_name'] = 'rewardName'
61
+ @_hash['currency_code'] = 'currencyCode'
62
+ @_hash['status'] = 'status'
63
+ @_hash['value_type'] = 'valueType'
64
+ @_hash['reward_type'] = 'rewardType'
65
+ @_hash['created_date'] = 'createdDate'
66
+ @_hash['last_update_date'] = 'lastUpdateDate'
67
+ @_hash['countries'] = 'countries'
68
+ @_hash['min_value'] = 'minValue'
69
+ @_hash['max_value'] = 'maxValue'
70
+ @_hash['face_value'] = 'faceValue'
71
71
  @_hash
72
72
  end
73
73
 
@@ -97,25 +97,27 @@ module Raas
97
97
  @face_value = face_value
98
98
  end
99
99
 
100
- # Creates an instance of the object from a hash
100
+ # Creates an instance of the object from a hash.
101
101
  def self.from_hash(hash)
102
102
  return nil unless hash
103
103
 
104
- # Extract variables from the hash
104
+ # Extract variables from the hash.
105
105
  utid = hash['utid']
106
106
  reward_name = hash['rewardName']
107
107
  currency_code = hash['currencyCode']
108
108
  status = hash['status']
109
109
  value_type = hash['valueType']
110
110
  reward_type = hash['rewardType']
111
- created_date = DateTime.rfc3339(hash['createdDate']) if hash['createdDate']
112
- last_update_date = DateTime.rfc3339(hash['lastUpdateDate']) if hash['lastUpdateDate']
111
+ created_date = APIHelper.rfc3339(hash['createdDate']) if
112
+ hash['createdDate']
113
+ last_update_date = APIHelper.rfc3339(hash['lastUpdateDate']) if
114
+ hash['lastUpdateDate']
113
115
  countries = hash['countries']
114
116
  min_value = hash['minValue']
115
117
  max_value = hash['maxValue']
116
118
  face_value = hash['faceValue']
117
119
 
118
- # Create object from extracted values
120
+ # Create object from extracted values.
119
121
  ItemModel.new(utid,
120
122
  reward_name,
121
123
  currency_code,
@@ -1,27 +1,27 @@
1
- # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
2
3
 
3
4
  module Raas
5
+ # Represents a name and an email address
4
6
  class NameEmailModel < BaseModel
5
- # Email Address
7
+ # An email address
6
8
  # @return [String]
7
9
  attr_accessor :email
8
10
 
9
- # First Name
11
+ # A first name
10
12
  # @return [String]
11
13
  attr_accessor :first_name
12
14
 
13
- # Last Name
15
+ # A last name
14
16
  # @return [String]
15
17
  attr_accessor :last_name
16
18
 
17
- # A mapping from model property names to API property names
19
+ # A mapping from model property names to API property names.
18
20
  def self.names
19
- if @_hash.nil?
20
- @_hash = {}
21
- @_hash["email"] = "email"
22
- @_hash["first_name"] = "firstName"
23
- @_hash["last_name"] = "lastName"
24
- end
21
+ @_hash = {} if @_hash.nil?
22
+ @_hash['email'] = 'email'
23
+ @_hash['first_name'] = 'firstName'
24
+ @_hash['last_name'] = 'lastName'
25
25
  @_hash
26
26
  end
27
27
 
@@ -33,16 +33,16 @@ module Raas
33
33
  @last_name = last_name
34
34
  end
35
35
 
36
- # Creates an instance of the object from a hash
36
+ # Creates an instance of the object from a hash.
37
37
  def self.from_hash(hash)
38
38
  return nil unless hash
39
39
 
40
- # Extract variables from the hash
40
+ # Extract variables from the hash.
41
41
  email = hash['email']
42
42
  first_name = hash['firstName']
43
43
  last_name = hash['lastName']
44
44
 
45
- # Create object from extracted values
45
+ # Create object from extracted values.
46
46
  NameEmailModel.new(email,
47
47
  first_name,
48
48
  last_name)
@@ -0,0 +1,51 @@
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+
4
+ module Raas
5
+ # Represents the credit card information required to register a credit card
6
+ class NewCreditCardModel < BaseModel
7
+ # The credit card number
8
+ # @return [String]
9
+ attr_accessor :number
10
+
11
+ # The credit card expiration date in YYYY-MM format
12
+ # @return [String]
13
+ attr_accessor :expiration
14
+
15
+ # The 3 or 4 digit card security code on the back of card
16
+ # @return [String]
17
+ attr_accessor :verification_number
18
+
19
+ # A mapping from model property names to API property names.
20
+ def self.names
21
+ @_hash = {} if @_hash.nil?
22
+ @_hash['number'] = 'number'
23
+ @_hash['expiration'] = 'expiration'
24
+ @_hash['verification_number'] = 'verificationNumber'
25
+ @_hash
26
+ end
27
+
28
+ def initialize(number = nil,
29
+ expiration = nil,
30
+ verification_number = nil)
31
+ @number = number
32
+ @expiration = expiration
33
+ @verification_number = verification_number
34
+ end
35
+
36
+ # Creates an instance of the object from a hash.
37
+ def self.from_hash(hash)
38
+ return nil unless hash
39
+
40
+ # Extract variables from the hash.
41
+ number = hash['number']
42
+ expiration = hash['expiration']
43
+ verification_number = hash['verificationNumber']
44
+
45
+ # Create object from extracted values.
46
+ NewCreditCardModel.new(number,
47
+ expiration,
48
+ verification_number)
49
+ end
50
+ end
51
+ end
@@ -1,187 +1,219 @@
1
- # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
2
3
 
3
4
  require 'date'
4
5
  module Raas
6
+ # Represents the response from a get order call
5
7
  class OrderModel < BaseModel
6
- # Account Identifier
8
+ # The reference order id
7
9
  # @return [String]
8
- attr_accessor :account_identifier
10
+ attr_accessor :reference_order_id
9
11
 
10
- # Amount Charged
11
- # @return [CurrencyBreakdownModel]
12
- attr_accessor :amount_charged
12
+ # The customer identifier
13
+ # @return [String]
14
+ attr_accessor :customer_identifier
13
15
 
14
- # Created At
15
- # @return [DateTime]
16
- attr_accessor :created_at
16
+ # The account identifier
17
+ # @return [String]
18
+ attr_accessor :account_identifier
17
19
 
18
- # Customer Identifier
20
+ # The account number
19
21
  # @return [String]
20
- attr_accessor :customer_identifier
22
+ attr_accessor :account_number
21
23
 
22
- # Denomination
24
+ # The order's amount information
25
+ # @return [CurrencyBreakdownModel]
26
+ attr_accessor :amount_charged
27
+
28
+ # Information about the gift card amount
23
29
  # @return [CurrencyBreakdownModel]
24
30
  attr_accessor :denomination
25
31
 
26
- # Reference Order ID
32
+ # The UTID
27
33
  # @return [String]
28
- attr_accessor :reference_order_id
29
-
30
- # Reward
31
- # @return [RewardModel]
32
- attr_accessor :reward
34
+ attr_accessor :utid
33
35
 
34
- # Reward Name
36
+ # The reward name
35
37
  # @return [String]
36
38
  attr_accessor :reward_name
37
39
 
38
- # Send Email
40
+ # Indicates if an email was sent to the recipient
39
41
  # @return [Boolean]
40
42
  attr_accessor :send_email
41
43
 
42
- # Status
44
+ # The order's status
43
45
  # @return [String]
44
46
  attr_accessor :status
45
47
 
46
- # UTID
48
+ # When the order was placed
49
+ # @return [DateTime]
50
+ attr_accessor :created_at
51
+
52
+ # Contains the reward credentials
53
+ # @return [RewardModel]
54
+ attr_accessor :reward
55
+
56
+ # The sender data
57
+ # @return [NameEmailModel]
58
+ attr_accessor :sender
59
+
60
+ # The recipient data
61
+ # @return [NameEmailModel]
62
+ attr_accessor :recipient
63
+
64
+ # The email template id
47
65
  # @return [String]
48
- attr_accessor :utid
66
+ attr_accessor :etid
49
67
 
50
- # Campaign
68
+ # An optional campaign identifier
51
69
  # @return [String]
52
70
  attr_accessor :campaign
53
71
 
54
- # Email Subject
72
+ # The subject of the email
55
73
  # @return [String]
56
74
  attr_accessor :email_subject
57
75
 
58
- # External Reference ID
76
+ # An external reference id
59
77
  # @return [String]
60
78
  attr_accessor :external_ref_id
61
79
 
62
- # Message
80
+ # A message included with the email
63
81
  # @return [String]
64
82
  attr_accessor :message
65
83
 
66
- # Notes
84
+ # Optional customer notes
67
85
  # @return [String]
68
86
  attr_accessor :notes
69
87
 
70
- # Recipient
71
- # @return [NameEmailModel]
72
- attr_accessor :recipient
73
-
74
- # Sender
75
- # @return [NameEmailModel]
76
- attr_accessor :sender
88
+ # Margin share information
89
+ # @return [CurrencyBreakdownModel]
90
+ attr_accessor :margin_share
77
91
 
78
- # A mapping from model property names to API property names
92
+ # A mapping from model property names to API property names.
79
93
  def self.names
80
- if @_hash.nil?
81
- @_hash = {}
82
- @_hash["account_identifier"] = "accountIdentifier"
83
- @_hash["amount_charged"] = "amountCharged"
84
- @_hash["created_at"] = "createdAt"
85
- @_hash["customer_identifier"] = "customerIdentifier"
86
- @_hash["denomination"] = "denomination"
87
- @_hash["reference_order_id"] = "referenceOrderID"
88
- @_hash["reward"] = "reward"
89
- @_hash["reward_name"] = "rewardName"
90
- @_hash["send_email"] = "sendEmail"
91
- @_hash["status"] = "status"
92
- @_hash["utid"] = "utid"
93
- @_hash["campaign"] = "campaign"
94
- @_hash["email_subject"] = "emailSubject"
95
- @_hash["external_ref_id"] = "externalRefID"
96
- @_hash["message"] = "message"
97
- @_hash["notes"] = "notes"
98
- @_hash["recipient"] = "recipient"
99
- @_hash["sender"] = "sender"
100
- end
94
+ @_hash = {} if @_hash.nil?
95
+ @_hash['reference_order_id'] = 'referenceOrderID'
96
+ @_hash['customer_identifier'] = 'customerIdentifier'
97
+ @_hash['account_identifier'] = 'accountIdentifier'
98
+ @_hash['account_number'] = 'accountNumber'
99
+ @_hash['amount_charged'] = 'amountCharged'
100
+ @_hash['denomination'] = 'denomination'
101
+ @_hash['utid'] = 'utid'
102
+ @_hash['reward_name'] = 'rewardName'
103
+ @_hash['send_email'] = 'sendEmail'
104
+ @_hash['status'] = 'status'
105
+ @_hash['created_at'] = 'createdAt'
106
+ @_hash['reward'] = 'reward'
107
+ @_hash['sender'] = 'sender'
108
+ @_hash['recipient'] = 'recipient'
109
+ @_hash['etid'] = 'etid'
110
+ @_hash['campaign'] = 'campaign'
111
+ @_hash['email_subject'] = 'emailSubject'
112
+ @_hash['external_ref_id'] = 'externalRefID'
113
+ @_hash['message'] = 'message'
114
+ @_hash['notes'] = 'notes'
115
+ @_hash['margin_share'] = 'marginShare'
101
116
  @_hash
102
117
  end
103
118
 
104
- def initialize(account_identifier = nil,
105
- amount_charged = nil,
106
- created_at = nil,
119
+ def initialize(reference_order_id = nil,
107
120
  customer_identifier = nil,
121
+ account_identifier = nil,
122
+ account_number = nil,
123
+ amount_charged = nil,
108
124
  denomination = nil,
109
- reference_order_id = nil,
110
- reward = nil,
125
+ utid = nil,
111
126
  reward_name = nil,
112
127
  send_email = nil,
113
128
  status = nil,
114
- utid = nil,
129
+ created_at = nil,
130
+ reward = nil,
131
+ sender = nil,
132
+ recipient = nil,
133
+ etid = nil,
115
134
  campaign = nil,
116
135
  email_subject = nil,
117
136
  external_ref_id = nil,
118
137
  message = nil,
119
138
  notes = nil,
120
- recipient = nil,
121
- sender = nil)
139
+ margin_share = nil)
140
+ @reference_order_id = reference_order_id
141
+ @customer_identifier = customer_identifier
122
142
  @account_identifier = account_identifier
143
+ @account_number = account_number
123
144
  @amount_charged = amount_charged
124
- @created_at = created_at
125
- @customer_identifier = customer_identifier
126
145
  @denomination = denomination
127
- @reference_order_id = reference_order_id
128
- @reward = reward
146
+ @utid = utid
129
147
  @reward_name = reward_name
130
148
  @send_email = send_email
131
149
  @status = status
132
- @utid = utid
150
+ @created_at = created_at
151
+ @reward = reward
152
+ @sender = sender
153
+ @recipient = recipient
154
+ @etid = etid
133
155
  @campaign = campaign
134
156
  @email_subject = email_subject
135
157
  @external_ref_id = external_ref_id
136
158
  @message = message
137
159
  @notes = notes
138
- @recipient = recipient
139
- @sender = sender
160
+ @margin_share = margin_share
140
161
  end
141
162
 
142
- # Creates an instance of the object from a hash
163
+ # Creates an instance of the object from a hash.
143
164
  def self.from_hash(hash)
144
165
  return nil unless hash
145
166
 
146
- # Extract variables from the hash
147
- account_identifier = hash['accountIdentifier']
148
- amount_charged = CurrencyBreakdownModel.from_hash(hash['amountCharged']) if hash['amountCharged']
149
- created_at = DateTime.rfc3339(hash['createdAt']) if hash['createdAt']
150
- customer_identifier = hash['customerIdentifier']
151
- denomination = CurrencyBreakdownModel.from_hash(hash['denomination']) if hash['denomination']
167
+ # Extract variables from the hash.
152
168
  reference_order_id = hash['referenceOrderID']
153
- reward = RewardModel.from_hash(hash['reward']) if hash['reward']
169
+ customer_identifier = hash['customerIdentifier']
170
+ account_identifier = hash['accountIdentifier']
171
+ account_number = hash['accountNumber']
172
+ if hash['amountCharged']
173
+ amount_charged = CurrencyBreakdownModel.from_hash(hash['amountCharged'])
174
+ end
175
+ denomination = CurrencyBreakdownModel.from_hash(hash['denomination']) if
176
+ hash['denomination']
177
+ utid = hash['utid']
154
178
  reward_name = hash['rewardName']
155
179
  send_email = hash['sendEmail']
156
180
  status = hash['status']
157
- utid = hash['utid']
181
+ created_at = APIHelper.rfc3339(hash['createdAt']) if hash['createdAt']
182
+ reward = RewardModel.from_hash(hash['reward']) if hash['reward']
183
+ sender = NameEmailModel.from_hash(hash['sender']) if hash['sender']
184
+ recipient = NameEmailModel.from_hash(hash['recipient']) if
185
+ hash['recipient']
186
+ etid = hash['etid']
158
187
  campaign = hash['campaign']
159
188
  email_subject = hash['emailSubject']
160
189
  external_ref_id = hash['externalRefID']
161
190
  message = hash['message']
162
191
  notes = hash['notes']
163
- recipient = NameEmailModel.from_hash(hash['recipient']) if hash['recipient']
164
- sender = NameEmailModel.from_hash(hash['sender']) if hash['sender']
192
+ margin_share = CurrencyBreakdownModel.from_hash(hash['marginShare']) if
193
+ hash['marginShare']
165
194
 
166
- # Create object from extracted values
167
- OrderModel.new(account_identifier,
168
- amount_charged,
169
- created_at,
195
+ # Create object from extracted values.
196
+ OrderModel.new(reference_order_id,
170
197
  customer_identifier,
198
+ account_identifier,
199
+ account_number,
200
+ amount_charged,
171
201
  denomination,
172
- reference_order_id,
173
- reward,
202
+ utid,
174
203
  reward_name,
175
204
  send_email,
176
205
  status,
177
- utid,
206
+ created_at,
207
+ reward,
208
+ sender,
209
+ recipient,
210
+ etid,
178
211
  campaign,
179
212
  email_subject,
180
213
  external_ref_id,
181
214
  message,
182
215
  notes,
183
- recipient,
184
- sender)
216
+ margin_share)
185
217
  end
186
218
  end
187
219
  end