xpost 0.1.22 → 0.1.23

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/TODO.md +28 -1
  4. data/lib/.DS_Store +0 -0
  5. data/lib/xpost.rb +8 -6
  6. data/lib/xpost/.DS_Store +0 -0
  7. data/lib/xpost/address.rb +77 -0
  8. data/lib/xpost/authentication.rb +5 -0
  9. data/lib/xpost/configuration.rb +15 -0
  10. data/lib/xpost/item.rb +44 -0
  11. data/lib/xpost/order.rb +137 -0
  12. data/lib/xpost/orders.rb +53 -12
  13. data/lib/xpost/statuses.rb +29 -0
  14. data/lib/xpost/version.rb +1 -1
  15. data/sample/sample_essential_order_details.json +64 -0
  16. data/sample/sample_xpost_order-confirmed.json +317 -0
  17. data/sample/sample_xpost_order-for-pickup.json +379 -0
  18. data/sample/sample_xpost_order-pending.json +306 -0
  19. data/sample/webhook_sample.json +105 -0
  20. data/spec/factories/addresses.rb +46 -28
  21. data/spec/factories/items.rb +10 -10
  22. data/spec/factories/orders.rb +39 -16
  23. data/spec/{address_spec.rb → order/address/address_spec.rb} +0 -0
  24. data/spec/order/cancel_spec.rb +37 -0
  25. data/spec/order/confirm_spec.rb +38 -0
  26. data/spec/order/create_spec.rb +97 -0
  27. data/spec/order/for_pickup_spec.rb +42 -0
  28. data/spec/order/get_shipping_label_spec.rb +60 -0
  29. data/spec/{item_spec.rb → order/items/item_spec.rb} +5 -5
  30. data/spec/order/order_spec.rb +97 -0
  31. data/spec/orders/{orders_find_spec.rb → find_spec.rb} +3 -2
  32. data/spec/orders/{orders_track_spec.rb → track_spec.rb} +2 -2
  33. data/spec/spec_helper.rb +1 -0
  34. data/spec/xpost_spec.rb +27 -0
  35. data/xpost.gemspec +3 -0
  36. metadata +64 -12
  37. data/lib/xpost/models.rb +0 -5
  38. data/lib/xpost/models/address.rb +0 -38
  39. data/lib/xpost/models/item.rb +0 -31
  40. data/lib/xpost/models/order.rb +0 -54
  41. data/spec/line_item_spec.rb +0 -16
  42. data/spec/orders/order_create_spec.rb +0 -46
  43. data/spec/orders/order_for_pickup_spec.rb +0 -17
@@ -0,0 +1,306 @@
1
+ {
2
+ "id": 789566,
3
+ "party_id": 6191,
4
+ "service_id": 6191,
5
+ "currency": "PHP",
6
+ "reference_id": "2309174223312",
7
+ "tracking_number": "0078-9566-ABLV",
8
+ "payment_method": "cod",
9
+ "payment_provider": "lbcx",
10
+ "service": "next_day",
11
+ "status": "for_pickup",
12
+ "status_updated_at": "2018-08-13 11:52:15.948365+00",
13
+ "buyer_name": "Thea Lizardo",
14
+ "email": "thealizardo@gmail.com",
15
+ "contact_number": "+639176788488",
16
+ "subtotal": "1750.00",
17
+ "tax": "0.00",
18
+ "fee": "0.00",
19
+ "insurance": "0.00",
20
+ "discount": "0.00",
21
+ "shipping": "0.00",
22
+ "total": "1750.00",
23
+ "transaction_fee": "61.25",
24
+ "insurance_fee": "17.50",
25
+ "shipping_fee": "240.00",
26
+ "metadata": {
27
+ "key_1": "value_1",
28
+ "key_2": "value_2"
29
+ },
30
+ "preferred_pickup_time": "morning",
31
+ "preferred_delivery_time": "3pm - 5pm",
32
+ "created_at": "2018-08-13 11:52:15+00",
33
+ "tat": {
34
+ "for_pickup": 1534161135
35
+ },
36
+ "shipment": "box",
37
+ "remarks": null,
38
+ "buyer_id": "12345",
39
+ "parcel": {
40
+ "weight": {
41
+ "uom": "kg",
42
+ "value": "4"
43
+ },
44
+ "dimensions": {
45
+ "uom": "cm",
46
+ "width": 22,
47
+ "height": 22,
48
+ "length": 22
49
+ }
50
+ },
51
+ "updated_at": "2018-08-13 11:52:16+00",
52
+ "client": "Xpanse",
53
+ "organization": {
54
+ "party_id": 6191,
55
+ "name": "Xpanse",
56
+ "external_id": null
57
+ },
58
+ "pickup_address": {
59
+ "id": 1600969,
60
+ "code": null,
61
+ "name": "Thea Lizardo",
62
+ "title": null,
63
+ "email": null,
64
+ "phone_number": "",
65
+ "mobile_number": "+639171234567",
66
+ "fax_number": null,
67
+ "company": "xpanse",
68
+ "line_1": "Payless Warehouse",
69
+ "line_2": "",
70
+ "district": null,
71
+ "city": "Paranaque City",
72
+ "state": "Metro Manila",
73
+ "postal_code": "1634",
74
+ "region": "Mmb",
75
+ "country": {
76
+ "code": "PH",
77
+ "name": "Philippines"
78
+ },
79
+ "city_approximation": "Paranaque City",
80
+ "branch_code": null
81
+ },
82
+ "delivery_address": {
83
+ "id": 1600609,
84
+ "code": null,
85
+ "name": "Thea Lizardo",
86
+ "title": null,
87
+ "email": null,
88
+ "phone_number": "",
89
+ "mobile_number": "+639171234567",
90
+ "fax_number": null,
91
+ "company": "",
92
+ "line_1": "Payless Warehouse",
93
+ "line_2": "",
94
+ "district": null,
95
+ "city": "Paranaque City",
96
+ "state": "Metro Manila",
97
+ "postal_code": "1634",
98
+ "region": "Mmb",
99
+ "country": {
100
+ "code": "PH",
101
+ "name": "Philippines"
102
+ },
103
+ "city_approximation": "Paranaque City"
104
+ },
105
+ "return_address": {
106
+ "id": null,
107
+ "code": null,
108
+ "name": null,
109
+ "title": null,
110
+ "email": null,
111
+ "phone_number": null,
112
+ "mobile_number": null,
113
+ "fax_number": null,
114
+ "company": null,
115
+ "line_1": null,
116
+ "line_2": null,
117
+ "district": null,
118
+ "city": null,
119
+ "state": null,
120
+ "postal_code": null,
121
+ "region": null,
122
+ "country": {
123
+ "code": null,
124
+ "name": null
125
+ }
126
+ },
127
+ "dropoff_address": {
128
+ "id": null,
129
+ "code": null,
130
+ "name": null,
131
+ "title": null,
132
+ "email": null,
133
+ "phone_number": null,
134
+ "mobile_number": null,
135
+ "fax_number": null,
136
+ "company": null,
137
+ "line_1": null,
138
+ "line_2": null,
139
+ "district": null,
140
+ "city": null,
141
+ "state": null,
142
+ "postal_code": null,
143
+ "region": null,
144
+ "country": {
145
+ "code": null,
146
+ "name": null
147
+ }
148
+ },
149
+ "charge": {
150
+ "order_id": 789566,
151
+ "status": "pending",
152
+ "reference_id": "71001373530487",
153
+ "total_amount": "1750.00",
154
+ "tendered_amount": "0.00",
155
+ "change_amount": "0.00",
156
+ "remarks": null,
157
+ "created_at": "2018-08-13 11:52:15+00",
158
+ "updated_at": "2018-08-13 11:52:16+00"
159
+ },
160
+ "claim": {
161
+ "status": null,
162
+ "amount": null,
163
+ "shipping_fee_flag": null,
164
+ "insurance_fee_flag": null,
165
+ "transaction_fee_flag": null,
166
+ "assets": null,
167
+ "reason": null,
168
+ "remarks": null,
169
+ "created_at": null,
170
+ "updated_at": null,
171
+ "tat": null,
172
+ "reference_id": null
173
+ },
174
+ "buyer_name_parsed": {
175
+ "first_name": "Thea Lizardo",
176
+ "middle_name": null,
177
+ "last_name": null
178
+ },
179
+ "items": [
180
+ {
181
+ "type": "product",
182
+ "description": "Women's Abby Pointed Sling",
183
+ "amount": "1750.00",
184
+ "quantity": 1,
185
+ "total": "1750.00",
186
+ "metadata": {
187
+ "sku": "FSRI-174290070",
188
+ "size": "7",
189
+ "color": "Floral",
190
+ "width": "Regular"
191
+ },
192
+ "insured_value": null
193
+ }
194
+ ],
195
+ "segments": [
196
+ {
197
+ "courier": "South Hub",
198
+ "type": "pick_up",
199
+ "barcode_format": "qr",
200
+ "tat": {
201
+ "end_date": null,
202
+ "start_date": null
203
+ },
204
+ "shipping_type": "land",
205
+ "currency": null,
206
+ "amount": null,
207
+ "reference_id": "0078-9566-ABLV",
208
+ "active": true,
209
+ "pickup_address": {
210
+ "name": "Thea Lizardo",
211
+ "title": null,
212
+ "email": null,
213
+ "phone_number": "",
214
+ "mobile_number": "+639171234567",
215
+ "fax_number": null,
216
+ "company": "xpanse",
217
+ "line_1": "Payless Warehouse",
218
+ "line_2": "",
219
+ "district": null,
220
+ "city": "Paranaque City",
221
+ "state": "Metro Manila",
222
+ "postal_code": "1634",
223
+ "region": "Mmb",
224
+ "country": {
225
+ "code": "PH",
226
+ "name": "Philippines"
227
+ }
228
+ },
229
+ "delivery_address": {
230
+ "name": "South Hub",
231
+ "title": null,
232
+ "email": null,
233
+ "phone_number": null,
234
+ "mobile_number": null,
235
+ "fax_number": null,
236
+ "company": null,
237
+ "line_1": "",
238
+ "line_2": null,
239
+ "district": "",
240
+ "city": "Manila City",
241
+ "state": "Metro Manila",
242
+ "postal_code": "",
243
+ "region": "MMB",
244
+ "country": {
245
+ "code": "PH",
246
+ "name": "Philippines"
247
+ }
248
+ }
249
+ },
250
+ {
251
+ "courier": "South Hub",
252
+ "type": "delivery",
253
+ "barcode_format": "qr",
254
+ "tat": {
255
+ "end_date": null,
256
+ "start_date": null
257
+ },
258
+ "shipping_type": "land",
259
+ "currency": null,
260
+ "amount": null,
261
+ "reference_id": "71001373530487",
262
+ "active": false,
263
+ "pickup_address": {
264
+ "name": "South Hub",
265
+ "title": null,
266
+ "email": null,
267
+ "phone_number": null,
268
+ "mobile_number": null,
269
+ "fax_number": null,
270
+ "company": null,
271
+ "line_1": "",
272
+ "line_2": null,
273
+ "district": "",
274
+ "city": "Manila City",
275
+ "state": "Metro Manila",
276
+ "postal_code": "",
277
+ "region": "MMB",
278
+ "country": {
279
+ "code": "PH",
280
+ "name": "Philippines"
281
+ }
282
+ },
283
+ "delivery_address": {
284
+ "name": "Thea Lizardo",
285
+ "title": null,
286
+ "email": null,
287
+ "phone_number": "",
288
+ "mobile_number": "+639171234567",
289
+ "fax_number": null,
290
+ "company": "",
291
+ "line_1": "Payless Warehouse",
292
+ "line_2": "",
293
+ "district": null,
294
+ "city": "Paranaque City",
295
+ "state": "Metro Manila",
296
+ "postal_code": "1634",
297
+ "region": "Mmb",
298
+ "country": {
299
+ "code": "PH",
300
+ "name": "Philippines"
301
+ }
302
+ }
303
+ }
304
+ ],
305
+ "children": []
306
+ }
@@ -0,0 +1,105 @@
1
+ {
2
+ "event": "status_update",
3
+ "timestamp": 1512551041,
4
+ "data": [
5
+ {
6
+ "event_id": 35862967,
7
+ "tracking_number": "0495-0754-VZXJ",
8
+ "reference_id": "17120514285DPEK.42ecdce0-d185-4356-a30f-d33ea14cff05",
9
+ "created_at": "2017-12-06 16:41:31.898782+08",
10
+ "status_updated_at": "2017-12-06 16:41:21+08",
11
+ "status": "picked_up",
12
+ "remarks": "Package successfully picked up",
13
+ "fees": {
14
+ "shipping_fee": 100,
15
+ "insurance_fee": 9,
16
+ "transaction_fee": 27
17
+ },
18
+ "party": {
19
+ "id": 6,
20
+ "external_id": null
21
+ },
22
+ "parent": {
23
+ "id": null,
24
+ "tracking_number": null,
25
+ "reference_id": null
26
+ }
27
+ },
28
+ {
29
+ "event_id": 35862969,
30
+ "tracking_number": "0476-8835-FHUL",
31
+ "reference_id": "17120110305AQXW.db11da3c-15f9-4a79-a605-2aa59600790f",
32
+ "created_at": "2017-12-06 16:41:31.939001+08",
33
+ "status_updated_at": "2017-12-06 16:04:06+08",
34
+ "status": "in_transit",
35
+ "remarks": "FORWARDED TO PUERTO PRINCESA DELIVERY HUB",
36
+ "fees": {
37
+ "shipping_fee": 100,
38
+ "insurance_fee": 5,
39
+ "transaction_fee": 20
40
+ },
41
+ "party": {
42
+ "id": 6,
43
+ "external_id": null
44
+ },
45
+ "parent": {
46
+ "id": null,
47
+ "tracking_number": null,
48
+ "reference_id": null
49
+ }
50
+ },
51
+ {
52
+ "event_id": 35862972,
53
+ "tracking_number": "0479-8119-CWAX",
54
+ "reference_id": "17120109493993N.88b7c455-cf29-404c-a91f-a398278ad1fd",
55
+ "created_at": "2017-12-06 16:41:32.475252+08",
56
+ "status_updated_at": "2017-12-06 16:20:19+08",
57
+ "status": "in_transit",
58
+ "remarks": "RECEIVED AT SOUTH LUZON AREA",
59
+ "fees": {
60
+ "shipping_fee": 100,
61
+ "insurance_fee": 6.1,
62
+ "transaction_fee": 20
63
+ },
64
+ "party": {
65
+ "id": 6,
66
+ "external_id": null
67
+ },
68
+ "parent": {
69
+ "id": null,
70
+ "tracking_number": null,
71
+ "reference_id": null
72
+ }
73
+ },
74
+ {
75
+ "event_id": 35862977,
76
+ "tracking_number": "0481-9668-HAJN",
77
+ "reference_id": "17120113387HYRH.3623ee76-ee52-44a0-b890-f2bdc661078e",
78
+ "created_at": "2017-12-06 16:41:33.064148+08",
79
+ "status_updated_at": "2017-12-06 16:37:43+08",
80
+ "status": "in_transit",
81
+ "remarks": "RECEIVED AT SOUTH LUZON AREA",
82
+ "fees": {
83
+ "shipping_fee": 100,
84
+ "insurance_fee": 5.52,
85
+ "transaction_fee": 20
86
+ },
87
+ "party": {
88
+ "id": 6,
89
+ "external_id": null
90
+ },
91
+ "parent": {
92
+ "id": null,
93
+ "tracking_number": null,
94
+ "reference_id": null
95
+ }
96
+ },
97
+ {
98
+ "event_id": 35862981,
99
+ "tracking_number": "0492-6744-JFQD",
100
+ "reference_id": "17120411264R1YD.8b95ac0c-4466-4053-bd03-ce1c9723b8fc",
101
+ "created_at": "2017-12-06 16:41:33.193278+08",
102
+ "status_updated_at": "2017-12-06 16:41:22+08",
103
+ ...
104
+ }]
105
+ }
@@ -1,38 +1,56 @@
1
1
  FactoryBot.define do
2
- factory :address, class: Xpost::Models::Address do
3
- name "Bobby Axelrod"
4
- line_1 "Axe Capital"
2
+ factory :address, class: Xpost::Address do
3
+ name { "Bobby Axelrod" }
4
+ line_1 { "Axe Capital" }
5
5
  end
6
6
 
7
- factory :required_address, class: Xpost::Models::Address do
8
- name "Bobby Axelrod"
9
- shipment "small-pouch"
10
- line_1 "855 Sixth Avenue"
11
- city "New York"
12
- state "NY"
13
- postal_code 10001
14
- country "US"
7
+ factory :required_address, class: Xpost::Address do
8
+ name { "Bobby Axelrod" }
9
+ line_1 { "BGC Corporate Centre" }
10
+ city { "Taguig" }
11
+ state { "Metro Manila" }
12
+ postal_code { "1634" }
13
+ country { "PH" }
15
14
 
16
15
  initialize_with { new(attributes) }
17
16
  end
18
17
 
19
- factory :complete_address, class: Xpost::Models::Address do
20
- name "Bobby Axelrod"
21
- shipment "small-pouch"
22
- line_1 "855 Sixth Avenue"
23
- city "New York"
24
- state "NY"
25
- postal_code 10001
26
- country "US"
27
- company "Axe Capital"
28
- title "CEO"
29
- email "bobby@axe.com"
30
- phone_number "12345678"
31
- mobile_number "091712345678"
32
- fax_number "12345678"
33
- district "Manhattan"
34
- line_2 "5th floor"
35
- remarks "Send ASAP"
18
+ factory :complete_address, class: Xpost::Address do
19
+ name { "Bobby Axelrod" }
20
+ line_1 { "BGC Corporate Centre" }
21
+ line_2 { "5th floor" }
22
+ city { "Taguig" }
23
+ state { "Metro Manila" }
24
+ postal_code { "1634" }
25
+ country { "PH" }
26
+ company { "Axe Capital" }
27
+ title { "CEO" }
28
+ email { "bobby@axe.com" }
29
+ phone_number { "12345678" }
30
+ mobile_number { "091712345678" }
31
+ fax_number { "12345678" }
32
+ district { "BGC" }
33
+ remarks { "Send ASAP" }
34
+
35
+ initialize_with { new(attributes) }
36
+ end
37
+
38
+ factory :complete_address_pickup, class: Xpost::Address do
39
+ name { "Taylor Mason" }
40
+ line_1 { "BGC Corporate Centre" }
41
+ line_2 { "7th floor" }
42
+ city { "Taguig" }
43
+ state { "Metro Manila" }
44
+ postal_code { "1634" }
45
+ country { "PH" }
46
+ company { "Taylor Mason Capital" }
47
+ title { "CEO" }
48
+ email { "taylor@tmcapital.com" }
49
+ phone_number { "12345678" }
50
+ mobile_number { "091712345678" }
51
+ fax_number { "12345678" }
52
+ district { "BGC" }
53
+ remarks { "" }
36
54
 
37
55
  initialize_with { new(attributes) }
38
56
  end