mastercard_merchant_onboarding 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +24 -0
  3. data/README.md +56 -0
  4. data/lib/mastercard_merchant_onboarding.rb +58 -0
  5. data/lib/mastercard_merchant_onboarding/api/single_merchant_upload_api.rb +42 -0
  6. data/lib/mastercard_merchant_onboarding/api/single_merchant_validate_api.rb +42 -0
  7. data/lib/mastercard_merchant_onboarding/models/acquirer.rb +225 -0
  8. data/lib/mastercard_merchant_onboarding/models/address.rb +247 -0
  9. data/lib/mastercard_merchant_onboarding/models/auth_option.rb +210 -0
  10. data/lib/mastercard_merchant_onboarding/models/checkout_brand.rb +247 -0
  11. data/lib/mastercard_merchant_onboarding/models/emails.rb +169 -0
  12. data/lib/mastercard_merchant_onboarding/models/extension_point.rb +167 -0
  13. data/lib/mastercard_merchant_onboarding/models/merchant.rb +309 -0
  14. data/lib/mastercard_merchant_onboarding/models/merchant_acquirer.rb +258 -0
  15. data/lib/mastercard_merchant_onboarding/models/merchant_acquirer_brand.rb +211 -0
  16. data/lib/mastercard_merchant_onboarding/models/merchant_download.rb +215 -0
  17. data/lib/mastercard_merchant_onboarding/models/merchant_response_record.rb +236 -0
  18. data/lib/mastercard_merchant_onboarding/models/merchant_upload.rb +182 -0
  19. data/lib/mastercard_merchant_onboarding/models/phone.rb +192 -0
  20. data/lib/mastercard_merchant_onboarding/models/profile.rb +273 -0
  21. data/lib/mastercard_merchant_onboarding/models/project_key_type.rb +180 -0
  22. data/lib/mastercard_merchant_onboarding/models/reward_program.rb +203 -0
  23. data/lib/mastercard_merchant_onboarding/models/summary.rb +259 -0
  24. data/lib/mastercard_merchant_onboarding/models/validate_file_response.rb +191 -0
  25. data/lib/mastercard_merchant_onboarding/models/validated_merchant.rb +202 -0
  26. data/lib/mastercard_merchant_onboarding/tracker/sdk_api_tracker.rb +57 -0
  27. data/lib/mastercard_merchant_onboarding/version.rb +3 -0
  28. metadata +186 -0
@@ -0,0 +1,309 @@
1
+ require 'date'
2
+ require 'roxml'
3
+ require_relative '../../mastercard_merchant_onboarding/models/auth_option'
4
+ require_relative '../../mastercard_merchant_onboarding/models/checkout_brand'
5
+ require_relative '../../mastercard_merchant_onboarding/models/extension_point'
6
+ require_relative '../../mastercard_merchant_onboarding/models/merchant_acquirer'
7
+ require_relative '../../mastercard_merchant_onboarding/models/profile'
8
+ require_relative '../../mastercard_merchant_onboarding/models/reward_program'
9
+
10
+
11
+ module MastercardMerchantOnboarding
12
+ # This class contains various merchant details.
13
+ class Merchant
14
+ include ROXML
15
+
16
+ xml_name "Merchant"
17
+
18
+ # @!attribute sp_merchant_id
19
+ # @return [String] the Service Provider Issued merchant ID. This should be unique per Service Provider. For example, 123456789
20
+ xml_accessor :sp_merchant_id, :from =>"SPMerchantId"
21
+
22
+ # @!attribute action
23
+ # @return [String] the merchant action. Valid values are C(Create), U(Update) and D(Delete).
24
+ xml_accessor :action, :from =>"Action"
25
+
26
+ # @!attribute profile
27
+ # @return [Profile] the merchant Profile. Mandatory for Create(Action=C) and Update(Action=U).
28
+ xml_accessor :profile, :from =>"Profile",:as => Profile
29
+
30
+ # @!attribute reward_program
31
+ # @return [RewardProgram] the reward program information.
32
+ xml_accessor :reward_program, :from =>"RewardProgram",:as => RewardProgram
33
+
34
+ xml_accessor :checkout_brand, :from =>"CheckoutBrand", :as =>[CheckoutBrand]
35
+
36
+ # @!attribute auth_option
37
+ # @return [Array<AuthOption>] the authentication options.
38
+ xml_accessor :auth_option, :from =>"AuthOption", :as =>[AuthOption]
39
+
40
+ # @!attribute merchant_acquirer
41
+ # @return [Array<MerchantAcquirer>] the merchant acquirer.
42
+ xml_accessor :merchant_acquirer, :from =>"MerchantAcquirer", :as =>[MerchantAcquirer]
43
+
44
+ # @!attribute checkout_level
45
+ # @return [String] the checkout level.
46
+ xml_accessor :checkout_level, :from =>"CheckoutLevel"
47
+
48
+ # @!attribute extension_point
49
+ # @return [ExtensionPoint] the extension point for future enhancement.
50
+ xml_accessor :extension_point, :from =>"ExtensionPoint",:as => ExtensionPoint
51
+
52
+
53
+ # Attribute mapping from ruby-style variable name to JSON key.
54
+ def self.attribute_map
55
+ {
56
+ :sp_merchant_id => :SPMerchantId ,
57
+ :action => :Action ,
58
+ :profile => :Profile ,
59
+ :reward_program => :RewardProgram ,
60
+ :checkout_brand => :CheckoutBrand ,
61
+ :auth_option => :AuthOption ,
62
+ :merchant_acquirer => :MerchantAcquirer ,
63
+ :checkout_level => :CheckoutLevel ,
64
+ :extension_point => :ExtensionPoint
65
+
66
+ }
67
+ end
68
+
69
+ def initialize(attributes = {})
70
+ return unless attributes.is_a?(Hash)
71
+
72
+ # convert string to symbol for hash key
73
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
74
+
75
+
76
+ if attributes.has_key?(:sp_merchant_id)
77
+ self.sp_merchant_id = attributes[:sp_merchant_id]
78
+ end
79
+
80
+ if attributes.has_key?(:action)
81
+ self.action = attributes[:action]
82
+ end
83
+
84
+ if attributes.has_key?(:profile)
85
+ self.profile = attributes[:profile]
86
+ end
87
+
88
+ if attributes.has_key?(:reward_program)
89
+ self.reward_program = attributes[:reward_program]
90
+ end
91
+
92
+ if attributes.has_key?(:checkout_brand)
93
+ self.checkout_brand = attributes[:checkout_brand]
94
+ end
95
+
96
+ if attributes.has_key?(:auth_option)
97
+ self.auth_option = attributes[:auth_option]
98
+ end
99
+
100
+ if attributes.has_key?(:merchant_acquirer)
101
+ self.merchant_acquirer = attributes[:merchant_acquirer]
102
+ end
103
+
104
+ if attributes.has_key?(:checkout_level)
105
+ self.checkout_level = attributes[:checkout_level]
106
+ end
107
+
108
+ if attributes.has_key?(:extension_point)
109
+ self.extension_point = attributes[:extension_point]
110
+ end
111
+
112
+ end
113
+
114
+
115
+ # Overriding setter method checkout_brand
116
+ # @param value
117
+ def checkout_brand=(value)
118
+ if (value.is_a?(Array))
119
+ @checkout_brand = value
120
+ else
121
+ @checkout_brand = [] if !@checkout_brand
122
+ @checkout_brand.push value
123
+ end
124
+ end
125
+ # Overriding setter method auth_option
126
+ # @param value
127
+ def auth_option=(value)
128
+ if (value.is_a?(Array))
129
+ @auth_option = value
130
+ else
131
+ @auth_option = [] if !@auth_option
132
+ @auth_option.push value
133
+ end
134
+ end
135
+ # Overriding setter method merchant_acquirer
136
+ # @param value
137
+ def merchant_acquirer=(value)
138
+ if (value.is_a?(Array))
139
+ @merchant_acquirer = value
140
+ else
141
+ @merchant_acquirer = [] if !@merchant_acquirer
142
+ @merchant_acquirer.push value
143
+ end
144
+ end
145
+
146
+
147
+ # Custom attribute writer method checking allowed values (enum).
148
+ def action=(action)
149
+ allowed_values = ["C", "U", "D"]
150
+ if action && !allowed_values.include?(action)
151
+ fail "invalid value for 'action', must be one of #{allowed_values}"
152
+ end
153
+ @action = action
154
+ end
155
+
156
+ # Custom attribute writer method checking allowed values (enum).
157
+ def checkout_level=(checkout_level)
158
+ allowed_values = ["STANDARD", "EXPRESS"]
159
+ if checkout_level && !allowed_values.include?(checkout_level)
160
+ fail "invalid value for 'checkout_level', must be one of #{allowed_values}"
161
+ end
162
+ @checkout_level = checkout_level
163
+ end
164
+
165
+ # Check equality by comparing each attribute.
166
+ def ==(o)
167
+ return true if self.equal?(o)
168
+ self.class == o.class &&
169
+ sp_merchant_id == o.sp_merchant_id &&
170
+ action == o.action &&
171
+ profile == o.profile &&
172
+ reward_program == o.reward_program &&
173
+ checkout_brand == o.checkout_brand &&
174
+ auth_option == o.auth_option &&
175
+ merchant_acquirer == o.merchant_acquirer &&
176
+ checkout_level == o.checkout_level &&
177
+ extension_point == o.extension_point
178
+ end
179
+
180
+ # @see the `==` method
181
+ def eql?(o)
182
+ self == o
183
+ end
184
+
185
+ # Calculate hash code according to all attributes.
186
+ def hash
187
+ [sp_merchant_id, action, profile, reward_program, checkout_brand, auth_option, merchant_acquirer, checkout_level, extension_point].hash
188
+ end
189
+
190
+ # build the object from hash
191
+ def build_from_hash(attributes)
192
+ return nil unless attributes.is_a?(Hash)
193
+ self.class.datatype_map.each_pair do |key, type|
194
+ if type =~ /^Array<(.*)>/i
195
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
196
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
197
+ else
198
+ #TODO show warning in debug mode
199
+ end
200
+ elsif !attributes[self.class.attribute_map[key]].nil?
201
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
202
+ else
203
+ # data not found in attributes(hash), not an issue as the data can be optional
204
+ end
205
+ end
206
+
207
+ self
208
+ end
209
+
210
+ def _deserialize(type, value)
211
+ case type.to_sym
212
+ when :DateTime
213
+ DateTime.parse(value)
214
+ when :Date
215
+ Date.parse(value)
216
+ when :Object
217
+ value
218
+ when :String
219
+ value.to_s
220
+ when :Integer
221
+ value.to_i
222
+ when :Float
223
+ value.to_f
224
+ when :BOOLEAN
225
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
226
+ true
227
+ else
228
+ false
229
+ end
230
+ when /\AArray<(?<inner_type>.+)>\z/
231
+ inner_type = Regexp.last_match[:inner_type]
232
+ value.map { |v| _deserialize(inner_type, v) }
233
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
234
+ k_type = Regexp.last_match[:k_type]
235
+ v_type = Regexp.last_match[:v_type]
236
+ {}.tap do |hash|
237
+ value.each do |k, v|
238
+ hash[_deserialize(k_type, k).to_sym] = _deserialize(v_type, v)
239
+ end
240
+ end
241
+ else # model
242
+ _model = MastercardMerchantOnboarding.const_get(type).new
243
+ _model.build_from_hash(value)
244
+ end
245
+ end
246
+
247
+ def to_s
248
+ to_hash.to_s
249
+ end
250
+
251
+ # to_body is an alias to to_body (backward compatibility))
252
+ def to_body
253
+ to_hash
254
+ end
255
+
256
+ # return the object in the form of hash
257
+ def to_hash(include_root = false)
258
+ attributes_hash = {}
259
+ hash = {}
260
+ self.class.attribute_map.each_pair do |attr, param|
261
+ value = self.send(attr)
262
+ next if value.nil?
263
+ hash[param] = _to_hash(value)
264
+ end
265
+ attributes_hash = include_root ? { "Merchant" => hash } : hash
266
+ return attributes_hash
267
+ end
268
+
269
+ # Method to output non-array value in the form of hash
270
+ # For object, use to_hash. Otherwise, just return the value
271
+ def _to_hash(value)
272
+ if value.is_a?(Array)
273
+ value.compact.map{ |v| _to_hash(v) }
274
+ elsif value.is_a?(Hash)
275
+ {}.tap do |hash|
276
+ value.each { |k, v| hash[k] = _to_hash(v) }
277
+ end
278
+ elsif value.respond_to? :to_hash
279
+ value.to_hash
280
+ else
281
+ value
282
+ end
283
+ end
284
+
285
+
286
+ private
287
+ def after_parse
288
+ self.send(:remove_instance_variable, :@roxml_references) if defined? self.roxml_references
289
+ end
290
+
291
+ # Attribute datatype mapping.
292
+ def self.datatype_map
293
+ {
294
+ :sp_merchant_id => 'String',
295
+ :action => 'String',
296
+ :profile => 'Profile',
297
+ :reward_program => 'RewardProgram',
298
+ :checkout_brand => 'Array<CheckoutBrand>',
299
+ :auth_option => 'Array<AuthOption>',
300
+ :merchant_acquirer => 'Array<MerchantAcquirer>',
301
+ :checkout_level => 'String',
302
+ :extension_point => 'ExtensionPoint'
303
+
304
+ }
305
+ end
306
+ end
307
+
308
+
309
+ end
@@ -0,0 +1,258 @@
1
+ require 'date'
2
+ require 'roxml'
3
+ require_relative '../../mastercard_merchant_onboarding/models/acquirer'
4
+ require_relative '../../mastercard_merchant_onboarding/models/extension_point'
5
+ require_relative '../../mastercard_merchant_onboarding/models/merchant_acquirer_brand'
6
+
7
+
8
+ module MastercardMerchantOnboarding
9
+ # This class contains the merchant's acquirer details.
10
+ class MerchantAcquirer
11
+ include ROXML
12
+
13
+ xml_name "MerchantAcquirer"
14
+
15
+ # @!attribute action
16
+ # @return [String] the Create, Update, Delete action. Used to create (C), update (U) or delete (D) Visa Password.
17
+ xml_accessor :action, :from =>"Action"
18
+
19
+ # @!attribute acquirer
20
+ # @return [Acquirer] the merchant's acquirer details.
21
+ xml_accessor :acquirer, :from =>"Acquirer",:as => Acquirer
22
+
23
+ # @!attribute merchant_acquirer_brand
24
+ # @return [MerchantAcquirerBrand] the merchant acquirer brand.
25
+ xml_accessor :merchant_acquirer_brand, :from =>"MerchantAcquirerBrand",:as => MerchantAcquirerBrand
26
+
27
+ # @!attribute extension_point
28
+ # @return [ExtensionPoint] the extension point for future enhancement.
29
+ xml_accessor :extension_point, :from =>"ExtensionPoint",:as => ExtensionPoint
30
+
31
+ # @!attribute id
32
+ # @return [String] the acquirer id. Used while merchant upload response.
33
+ xml_accessor :id, :from =>"ID"
34
+
35
+ # @!attribute name
36
+ # @return [String] the merchant's acquirer name. Used while merchant upload response.
37
+ xml_accessor :name, :from =>"Name"
38
+
39
+ # @!attribute assigned_merchant_id
40
+ # @return [String] the assigned merchant id. Used while merchant upload response.
41
+ xml_accessor :assigned_merchant_id, :from =>"AssignedMerchantID"
42
+
43
+ # @!attribute ds_status
44
+ # @return [String] the assigned merchant id. Used while merchant upload response.
45
+ xml_accessor :ds_status, :from =>"DSStatus"
46
+
47
+
48
+ # Attribute mapping from ruby-style variable name to JSON key.
49
+ def self.attribute_map
50
+ {
51
+ :action => :Action ,
52
+ :acquirer => :Acquirer ,
53
+ :merchant_acquirer_brand => :MerchantAcquirerBrand ,
54
+ :extension_point => :ExtensionPoint ,
55
+ :id => :ID ,
56
+ :name => :Name ,
57
+ :assigned_merchant_id => :AssignedMerchantID ,
58
+ :ds_status => :DSStatus
59
+
60
+ }
61
+ end
62
+
63
+ def initialize(attributes = {})
64
+ return unless attributes.is_a?(Hash)
65
+
66
+ # convert string to symbol for hash key
67
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
68
+
69
+
70
+ if attributes.has_key?(:action)
71
+ self.action = attributes[:action]
72
+ end
73
+
74
+ if attributes.has_key?(:acquirer)
75
+ self.acquirer = attributes[:acquirer]
76
+ end
77
+
78
+ if attributes.has_key?(:merchant_acquirer_brand)
79
+ self.merchant_acquirer_brand = attributes[:merchant_acquirer_brand]
80
+ end
81
+
82
+ if attributes.has_key?(:extension_point)
83
+ self.extension_point = attributes[:extension_point]
84
+ end
85
+
86
+ if attributes.has_key?(:id)
87
+ self.id = attributes[:id]
88
+ end
89
+
90
+ if attributes.has_key?(:name)
91
+ self.name = attributes[:name]
92
+ end
93
+
94
+ if attributes.has_key?(:assigned_merchant_id)
95
+ self.assigned_merchant_id = attributes[:assigned_merchant_id]
96
+ end
97
+
98
+ if attributes.has_key?(:ds_status)
99
+ self.ds_status = attributes[:ds_status]
100
+ end
101
+
102
+ end
103
+
104
+
105
+
106
+
107
+ # Custom attribute writer method checking allowed values (enum).
108
+ def action=(action)
109
+ allowed_values = ["C", "U", "D"]
110
+ if action && !allowed_values.include?(action)
111
+ fail "invalid value for 'action', must be one of #{allowed_values}"
112
+ end
113
+ @action = action
114
+ end
115
+
116
+ # Check equality by comparing each attribute.
117
+ def ==(o)
118
+ return true if self.equal?(o)
119
+ self.class == o.class &&
120
+ action == o.action &&
121
+ acquirer == o.acquirer &&
122
+ merchant_acquirer_brand == o.merchant_acquirer_brand &&
123
+ extension_point == o.extension_point &&
124
+ id == o.id &&
125
+ name == o.name &&
126
+ assigned_merchant_id == o.assigned_merchant_id &&
127
+ ds_status == o.ds_status
128
+ end
129
+
130
+ # @see the `==` method
131
+ def eql?(o)
132
+ self == o
133
+ end
134
+
135
+ # Calculate hash code according to all attributes.
136
+ def hash
137
+ [action, acquirer, merchant_acquirer_brand, extension_point, id, name, assigned_merchant_id, ds_status].hash
138
+ end
139
+
140
+ # build the object from hash
141
+ def build_from_hash(attributes)
142
+ return nil unless attributes.is_a?(Hash)
143
+ self.class.datatype_map.each_pair do |key, type|
144
+ if type =~ /^Array<(.*)>/i
145
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
146
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
147
+ else
148
+ #TODO show warning in debug mode
149
+ end
150
+ elsif !attributes[self.class.attribute_map[key]].nil?
151
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
152
+ else
153
+ # data not found in attributes(hash), not an issue as the data can be optional
154
+ end
155
+ end
156
+
157
+ self
158
+ end
159
+
160
+ def _deserialize(type, value)
161
+ case type.to_sym
162
+ when :DateTime
163
+ DateTime.parse(value)
164
+ when :Date
165
+ Date.parse(value)
166
+ when :Object
167
+ value
168
+ when :String
169
+ value.to_s
170
+ when :Integer
171
+ value.to_i
172
+ when :Float
173
+ value.to_f
174
+ when :BOOLEAN
175
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
176
+ true
177
+ else
178
+ false
179
+ end
180
+ when /\AArray<(?<inner_type>.+)>\z/
181
+ inner_type = Regexp.last_match[:inner_type]
182
+ value.map { |v| _deserialize(inner_type, v) }
183
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
184
+ k_type = Regexp.last_match[:k_type]
185
+ v_type = Regexp.last_match[:v_type]
186
+ {}.tap do |hash|
187
+ value.each do |k, v|
188
+ hash[_deserialize(k_type, k).to_sym] = _deserialize(v_type, v)
189
+ end
190
+ end
191
+ else # model
192
+ _model = MastercardMerchantOnboarding.const_get(type).new
193
+ _model.build_from_hash(value)
194
+ end
195
+ end
196
+
197
+ def to_s
198
+ to_hash.to_s
199
+ end
200
+
201
+ # to_body is an alias to to_body (backward compatibility))
202
+ def to_body
203
+ to_hash
204
+ end
205
+
206
+ # return the object in the form of hash
207
+ def to_hash(include_root = false)
208
+ attributes_hash = {}
209
+ hash = {}
210
+ self.class.attribute_map.each_pair do |attr, param|
211
+ value = self.send(attr)
212
+ next if value.nil?
213
+ hash[param] = _to_hash(value)
214
+ end
215
+ attributes_hash = include_root ? { "MerchantAcquirer" => hash } : hash
216
+ return attributes_hash
217
+ end
218
+
219
+ # Method to output non-array value in the form of hash
220
+ # For object, use to_hash. Otherwise, just return the value
221
+ def _to_hash(value)
222
+ if value.is_a?(Array)
223
+ value.compact.map{ |v| _to_hash(v) }
224
+ elsif value.is_a?(Hash)
225
+ {}.tap do |hash|
226
+ value.each { |k, v| hash[k] = _to_hash(v) }
227
+ end
228
+ elsif value.respond_to? :to_hash
229
+ value.to_hash
230
+ else
231
+ value
232
+ end
233
+ end
234
+
235
+
236
+ private
237
+ def after_parse
238
+ self.send(:remove_instance_variable, :@roxml_references) if defined? self.roxml_references
239
+ end
240
+
241
+ # Attribute datatype mapping.
242
+ def self.datatype_map
243
+ {
244
+ :action => 'String',
245
+ :acquirer => 'Acquirer',
246
+ :merchant_acquirer_brand => 'MerchantAcquirerBrand',
247
+ :extension_point => 'ExtensionPoint',
248
+ :id => 'String',
249
+ :name => 'String',
250
+ :assigned_merchant_id => 'String',
251
+ :ds_status => 'String'
252
+
253
+ }
254
+ end
255
+ end
256
+
257
+
258
+ end