commerce 1.0.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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/lib/commerce.rb +38 -0
- data/lib/commerce/api_helper.rb +151 -0
- data/lib/commerce/base_controller.rb +19 -0
- data/lib/commerce/cart.rb +221 -0
- data/lib/commerce/checkout.rb +451 -0
- data/lib/commerce/exceptions/api_exception.rb +16 -0
- data/lib/commerce/http/auth/custom_header_auth.rb +11 -0
- data/lib/commerce/http/faraday_client.rb +41 -0
- data/lib/commerce/http/http_call_back.rb +17 -0
- data/lib/commerce/http/http_client.rb +82 -0
- data/lib/commerce/http/http_context.rb +15 -0
- data/lib/commerce/http/http_method_enum.rb +7 -0
- data/lib/commerce/http/http_request.rb +44 -0
- data/lib/commerce/http/http_response.rb +21 -0
- data/lib/commerce/order.rb +113 -0
- data/lib/commerce/product.rb +60 -0
- data/lib/commerce/service.rb +85 -0
- data/spec/api/cart_api_spec.rb +167 -0
- data/spec/api/checkout_api_spec.rb +309 -0
- data/spec/api/order_api_spec.rb +100 -0
- data/spec/api/product_api_spec.rb +69 -0
- data/spec/api/service_api_spec.rb +82 -0
- data/spec/api_client_spec.rb +226 -0
- data/spec/configuration_spec.rb +42 -0
- data/spec/spec_helper.rb +111 -0
- metadata +119 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
module Commerce
|
|
2
|
+
class Checkout < BaseController
|
|
3
|
+
|
|
4
|
+
def self.capture(identifier, _parameters, _query_parameters = [])
|
|
5
|
+
|
|
6
|
+
_query_builder = Commerce.api_base.dup
|
|
7
|
+
_query_builder << '/checkouts/{identifier}'
|
|
8
|
+
|
|
9
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
10
|
+
'identifier' => identifier
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
15
|
+
|
|
16
|
+
_request = @@http_client.POST _query_url, parameters: _parameters
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
CustomHeaderAuth.apply(_request)
|
|
20
|
+
|
|
21
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
22
|
+
|
|
23
|
+
_response = @@http_client.execute_as_string(_request)
|
|
24
|
+
|
|
25
|
+
context = HttpContext.new(_request, _response)
|
|
26
|
+
|
|
27
|
+
return context.response.array
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.check_discount(id, _query_parameters = [])
|
|
32
|
+
|
|
33
|
+
_query_builder = Commerce.api_base.dup
|
|
34
|
+
_query_builder << '/checkouts/{id}/check/discount'
|
|
35
|
+
|
|
36
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
37
|
+
'id' => id
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
41
|
+
|
|
42
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
_request = @@http_client.GET _query_url
|
|
46
|
+
|
|
47
|
+
CustomHeaderAuth.apply(_request)
|
|
48
|
+
|
|
49
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
50
|
+
|
|
51
|
+
_response = @@http_client.execute_as_string(_request)
|
|
52
|
+
|
|
53
|
+
context = HttpContext.new(_request, _response)
|
|
54
|
+
|
|
55
|
+
return context.response.array
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def self.check_pay_what_you_want(id, _query_parameters = [])
|
|
60
|
+
|
|
61
|
+
_query_builder = Commerce.api_base.dup
|
|
62
|
+
_query_builder << '/checkouts/{id}/check/pay_what_you_want'
|
|
63
|
+
|
|
64
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
65
|
+
'id' => id
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
69
|
+
|
|
70
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
_request = @@http_client.GET _query_url
|
|
74
|
+
|
|
75
|
+
CustomHeaderAuth.apply(_request)
|
|
76
|
+
|
|
77
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
78
|
+
|
|
79
|
+
_response = @@http_client.execute_as_string(_request)
|
|
80
|
+
|
|
81
|
+
context = HttpContext.new(_request, _response)
|
|
82
|
+
|
|
83
|
+
return context.response.array
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def self.check_paypal_order_captured(id, _query_parameters = [])
|
|
88
|
+
|
|
89
|
+
_query_builder = Commerce.api_base.dup
|
|
90
|
+
_query_builder << '/checkouts/{id}/check/paypal/captured'
|
|
91
|
+
|
|
92
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
93
|
+
'id' => id
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
_request = @@http_client.GET _query_url
|
|
101
|
+
|
|
102
|
+
CustomHeaderAuth.apply(_request)
|
|
103
|
+
|
|
104
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
105
|
+
|
|
106
|
+
_response = @@http_client.execute_as_string(_request)
|
|
107
|
+
|
|
108
|
+
context = HttpContext.new(_request, _response)
|
|
109
|
+
|
|
110
|
+
return context.response.array
|
|
111
|
+
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def self.check_paypal_status(id, _query_parameters = [])
|
|
115
|
+
|
|
116
|
+
_query_builder = Commerce.api_base.dup
|
|
117
|
+
_query_builder << '/checkouts/{id}/check/paypal/payment'
|
|
118
|
+
|
|
119
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
120
|
+
'id' => id
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
_request = @@http_client.GET _query_url
|
|
128
|
+
|
|
129
|
+
CustomHeaderAuth.apply(_request)
|
|
130
|
+
|
|
131
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
132
|
+
|
|
133
|
+
_response = @@http_client.execute_as_string(_request)
|
|
134
|
+
|
|
135
|
+
context = HttpContext.new(_request, _response)
|
|
136
|
+
|
|
137
|
+
return context.response.array
|
|
138
|
+
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def self.check_quantity(id, line_item_id, _query_parameters = [])
|
|
142
|
+
|
|
143
|
+
_query_builder = Commerce.api_base.dup
|
|
144
|
+
_query_builder << '/checkouts/{id}/check/{line_item_id}/quantity'
|
|
145
|
+
|
|
146
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
147
|
+
'id' => id,
|
|
148
|
+
'line_item_id' => line_item_id
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
152
|
+
|
|
153
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
_request = @@http_client.GET _query_url
|
|
157
|
+
|
|
158
|
+
CustomHeaderAuth.apply(_request)
|
|
159
|
+
|
|
160
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
161
|
+
|
|
162
|
+
_response = @@http_client.execute_as_string(_request)
|
|
163
|
+
|
|
164
|
+
context = HttpContext.new(_request, _response)
|
|
165
|
+
|
|
166
|
+
return context.response.array
|
|
167
|
+
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def self.check_shipping_option(id, _query_parameters = [])
|
|
171
|
+
|
|
172
|
+
_query_builder = Commerce.api_base.dup
|
|
173
|
+
_query_builder << '/checkouts/{id}/check/shipping'
|
|
174
|
+
|
|
175
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
176
|
+
'id' => id
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
180
|
+
|
|
181
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
_request = @@http_client.GET _query_url
|
|
185
|
+
|
|
186
|
+
CustomHeaderAuth.apply(_request)
|
|
187
|
+
|
|
188
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
189
|
+
|
|
190
|
+
_response = @@http_client.execute_as_string(_request)
|
|
191
|
+
|
|
192
|
+
context = HttpContext.new(_request, _response)
|
|
193
|
+
|
|
194
|
+
return context.response.array
|
|
195
|
+
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
def self.check_variant(id, line_item_id, _query_parameters = [])
|
|
199
|
+
|
|
200
|
+
_query_builder = Commerce.api_base.dup
|
|
201
|
+
_query_builder << '/checkouts/{id}/check/{line_item_id}/variant'
|
|
202
|
+
|
|
203
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
204
|
+
'id' => id,
|
|
205
|
+
'line_item_id' => line_item_id
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
209
|
+
|
|
210
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
_request = @@http_client.GET _query_url
|
|
214
|
+
|
|
215
|
+
CustomHeaderAuth.apply(_request)
|
|
216
|
+
|
|
217
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
218
|
+
|
|
219
|
+
_response = @@http_client.execute_as_string(_request)
|
|
220
|
+
|
|
221
|
+
context = HttpContext.new(_request, _response)
|
|
222
|
+
|
|
223
|
+
return context.response.array
|
|
224
|
+
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def self.generate_token(identifier, _query_parameters = [])
|
|
228
|
+
|
|
229
|
+
_query_builder = Commerce.api_base.dup
|
|
230
|
+
_query_builder << '/checkouts/{identifier}'
|
|
231
|
+
|
|
232
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
233
|
+
'identifier' => identifier
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
237
|
+
|
|
238
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
_request = @@http_client.GET _query_url
|
|
242
|
+
|
|
243
|
+
CustomHeaderAuth.apply(_request)
|
|
244
|
+
|
|
245
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
246
|
+
|
|
247
|
+
_response = @@http_client.execute_as_string(_request)
|
|
248
|
+
|
|
249
|
+
context = HttpContext.new(_request, _response)
|
|
250
|
+
|
|
251
|
+
return context.response.array
|
|
252
|
+
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
def self.get_live(id, _query_parameters = [])
|
|
256
|
+
|
|
257
|
+
_query_builder = Commerce.api_base.dup
|
|
258
|
+
_query_builder << '/checkouts/{id}/live'
|
|
259
|
+
|
|
260
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
261
|
+
'id' => id
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
_request = @@http_client.GET _query_url
|
|
269
|
+
|
|
270
|
+
CustomHeaderAuth.apply(_request)
|
|
271
|
+
|
|
272
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
273
|
+
|
|
274
|
+
_response = @@http_client.execute_as_string(_request)
|
|
275
|
+
|
|
276
|
+
context = HttpContext.new(_request, _response)
|
|
277
|
+
|
|
278
|
+
return context.response.array
|
|
279
|
+
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
def self.get_location_from_ip(id, _query_parameters = [])
|
|
283
|
+
|
|
284
|
+
_query_builder = Commerce.api_base.dup
|
|
285
|
+
_query_builder << '/checkouts/{id}/helper/location_from_ip'
|
|
286
|
+
|
|
287
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
288
|
+
'id' => id
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
292
|
+
|
|
293
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
_request = @@http_client.GET _query_url
|
|
297
|
+
|
|
298
|
+
CustomHeaderAuth.apply(_request)
|
|
299
|
+
|
|
300
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
301
|
+
|
|
302
|
+
_response = @@http_client.execute_as_string(_request)
|
|
303
|
+
|
|
304
|
+
context = HttpContext.new(_request, _response)
|
|
305
|
+
|
|
306
|
+
return context.response.array
|
|
307
|
+
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
def self.get_shipping_options(id, _query_parameters = [])
|
|
311
|
+
|
|
312
|
+
_query_builder = Commerce.api_base.dup
|
|
313
|
+
_query_builder << '/checkouts/{id}/helper/shipping_options'
|
|
314
|
+
|
|
315
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
316
|
+
'id' => id
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
320
|
+
|
|
321
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
_request = @@http_client.GET _query_url
|
|
325
|
+
|
|
326
|
+
CustomHeaderAuth.apply(_request)
|
|
327
|
+
|
|
328
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
329
|
+
|
|
330
|
+
_response = @@http_client.execute_as_string(_request)
|
|
331
|
+
|
|
332
|
+
context = HttpContext.new(_request, _response)
|
|
333
|
+
|
|
334
|
+
return context.response.array
|
|
335
|
+
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
def self.helper_validation(id, _query_parameters = [])
|
|
339
|
+
|
|
340
|
+
_query_builder = Commerce.api_base.dup
|
|
341
|
+
_query_builder << '/checkouts/{id}/helper/validation'
|
|
342
|
+
|
|
343
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
344
|
+
'id' => id
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
_request = @@http_client.GET _query_url
|
|
352
|
+
|
|
353
|
+
CustomHeaderAuth.apply(_request)
|
|
354
|
+
|
|
355
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
356
|
+
|
|
357
|
+
_response = @@http_client.execute_as_string(_request)
|
|
358
|
+
|
|
359
|
+
context = HttpContext.new(_request, _response)
|
|
360
|
+
|
|
361
|
+
return context.response.array
|
|
362
|
+
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
def self.is_free(id, _query_parameters = [])
|
|
366
|
+
|
|
367
|
+
_query_builder = Commerce.api_base.dup
|
|
368
|
+
_query_builder << '/checkouts/{id}/check/is_free'
|
|
369
|
+
|
|
370
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
371
|
+
'id' => id
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
_request = @@http_client.GET _query_url
|
|
379
|
+
|
|
380
|
+
CustomHeaderAuth.apply(_request)
|
|
381
|
+
|
|
382
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
383
|
+
|
|
384
|
+
_response = @@http_client.execute_as_string(_request)
|
|
385
|
+
|
|
386
|
+
context = HttpContext.new(_request, _response)
|
|
387
|
+
|
|
388
|
+
return context.response.array
|
|
389
|
+
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
def self.receipt(id, _query_parameters = [])
|
|
393
|
+
|
|
394
|
+
_query_builder = Commerce.api_base.dup
|
|
395
|
+
_query_builder << '/checkouts/{id}/receipt'
|
|
396
|
+
|
|
397
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
398
|
+
'id' => id
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
402
|
+
|
|
403
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
_request = @@http_client.GET _query_url
|
|
407
|
+
|
|
408
|
+
CustomHeaderAuth.apply(_request)
|
|
409
|
+
|
|
410
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
411
|
+
|
|
412
|
+
_response = @@http_client.execute_as_string(_request)
|
|
413
|
+
|
|
414
|
+
context = HttpContext.new(_request, _response)
|
|
415
|
+
|
|
416
|
+
return context.response.array
|
|
417
|
+
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
def self.set_tax_zone(id, _query_parameters = [])
|
|
421
|
+
|
|
422
|
+
_query_builder = Commerce.api_base.dup
|
|
423
|
+
_query_builder << '/checkouts/{id}/helper/set_tax_zone'
|
|
424
|
+
|
|
425
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
|
426
|
+
'id' => id
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, _query_parameters
|
|
430
|
+
|
|
431
|
+
_query_url = APIHelper.clean_url _query_builder
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
_request = @@http_client.GET _query_url
|
|
435
|
+
|
|
436
|
+
CustomHeaderAuth.apply(_request)
|
|
437
|
+
|
|
438
|
+
_request.headers = @@global_headers.clone.merge(_request.headers)
|
|
439
|
+
|
|
440
|
+
_response = @@http_client.execute_as_string(_request)
|
|
441
|
+
|
|
442
|
+
context = HttpContext.new(_request, _response)
|
|
443
|
+
|
|
444
|
+
return context.response.array
|
|
445
|
+
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io ).
|
|
2
|
+
|
|
3
|
+
module Commerce
|
|
4
|
+
class APIException < StandardError
|
|
5
|
+
attr_reader :context, :response_code
|
|
6
|
+
|
|
7
|
+
# The constructor.
|
|
8
|
+
# @param [String] The reason for raising an exception
|
|
9
|
+
# @param [HttpContext] The HttpContext of the API call.
|
|
10
|
+
def initialize(reason, context)
|
|
11
|
+
super(reason)
|
|
12
|
+
@context = context
|
|
13
|
+
@response_code = context.response.status_code
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|