solidus_api_v2 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +38 -0
  5. data/Gemfile +13 -0
  6. data/LICENSE +26 -0
  7. data/README.md +98 -0
  8. data/Rakefile +37 -0
  9. data/app/controllers/concerns/spree/api/v2/renderable.rb +51 -0
  10. data/app/controllers/spree/api/v2/base_controller.rb +31 -0
  11. data/app/controllers/spree/api/v2/children_controller.rb +29 -0
  12. data/app/controllers/spree/api/v2/countries_controller.rb +21 -0
  13. data/app/controllers/spree/api/v2/images_controller.rb +29 -0
  14. data/app/controllers/spree/api/v2/line_items_controller.rb +36 -0
  15. data/app/controllers/spree/api/v2/option_types_controller.rb +31 -0
  16. data/app/controllers/spree/api/v2/option_values_controller.rb +29 -0
  17. data/app/controllers/spree/api/v2/orders_controller.rb +11 -0
  18. data/app/controllers/spree/api/v2/prices_controller.rb +27 -0
  19. data/app/controllers/spree/api/v2/products_controller.rb +37 -0
  20. data/app/controllers/spree/api/v2/states_controller.rb +29 -0
  21. data/app/controllers/spree/api/v2/taxonomies_controller.rb +21 -0
  22. data/app/controllers/spree/api/v2/taxons_controller.rb +40 -0
  23. data/app/controllers/spree/api/v2/variants_controller.rb +35 -0
  24. data/app/models/spree/base_decorator.rb +5 -0
  25. data/app/models/spree/image_decorator.rb +3 -0
  26. data/app/models/spree/price_decorator.rb +3 -0
  27. data/app/models/spree/state_decorator.rb +3 -0
  28. data/app/serializers/spree/address_serializer.rb +9 -0
  29. data/app/serializers/spree/base_serializer.rb +13 -0
  30. data/app/serializers/spree/country_serializer.rb +7 -0
  31. data/app/serializers/spree/error_serializer.rb +52 -0
  32. data/app/serializers/spree/image_serializer.rb +13 -0
  33. data/app/serializers/spree/line_item_serializer.rb +13 -0
  34. data/app/serializers/spree/option_type_serializer.rb +8 -0
  35. data/app/serializers/spree/option_value_serializer.rb +8 -0
  36. data/app/serializers/spree/order_serializer.rb +21 -0
  37. data/app/serializers/spree/price_serializer.rb +7 -0
  38. data/app/serializers/spree/product_serializer.rb +12 -0
  39. data/app/serializers/spree/role_serializer.rb +5 -0
  40. data/app/serializers/spree/state_serializer.rb +7 -0
  41. data/app/serializers/spree/store_serializer.rb +6 -0
  42. data/app/serializers/spree/taxon_serializer.rb +16 -0
  43. data/app/serializers/spree/taxonomy_serializer.rb +7 -0
  44. data/app/serializers/spree/user_serializer.rb +5 -0
  45. data/app/serializers/spree/variant_serializer.rb +12 -0
  46. data/bin/rails +7 -0
  47. data/circle.yml +13 -0
  48. data/config/locales/en.yml +25 -0
  49. data/config/routes.rb +53 -0
  50. data/docs/.nojekyll +0 -0
  51. data/docs/Dockerfile +12 -0
  52. data/docs/Gemfile +13 -0
  53. data/docs/README.md +12 -0
  54. data/docs/Rakefile +9 -0
  55. data/docs/config.rb +39 -0
  56. data/docs/font-selection.json +148 -0
  57. data/docs/source/fonts/slate.eot +0 -0
  58. data/docs/source/fonts/slate.svg +14 -0
  59. data/docs/source/fonts/slate.ttf +0 -0
  60. data/docs/source/fonts/slate.woff +0 -0
  61. data/docs/source/fonts/slate.woff2 +0 -0
  62. data/docs/source/images/logo.png +0 -0
  63. data/docs/source/images/navbar.png +0 -0
  64. data/docs/source/includes/_authentication.md +61 -0
  65. data/docs/source/includes/_countries.md +133 -0
  66. data/docs/source/includes/_errors.md +17 -0
  67. data/docs/source/includes/_filtering.md +11 -0
  68. data/docs/source/includes/_images.md +201 -0
  69. data/docs/source/includes/_line_items.md +137 -0
  70. data/docs/source/includes/_option_types.md +267 -0
  71. data/docs/source/includes/_option_values.md +227 -0
  72. data/docs/source/includes/_orders.md +75 -0
  73. data/docs/source/includes/_pagination.md +10 -0
  74. data/docs/source/includes/_prices.md +188 -0
  75. data/docs/source/includes/_products.md +403 -0
  76. data/docs/source/includes/_states.md +96 -0
  77. data/docs/source/includes/_taxonomies.md +325 -0
  78. data/docs/source/includes/_taxons.md +414 -0
  79. data/docs/source/includes/_variants.md +430 -0
  80. data/docs/source/index.md +53 -0
  81. data/docs/source/javascripts/all.js +4 -0
  82. data/docs/source/javascripts/all_nosearch.js +3 -0
  83. data/docs/source/javascripts/app/_lang.js +162 -0
  84. data/docs/source/javascripts/app/_search.js +74 -0
  85. data/docs/source/javascripts/app/_toc.js +55 -0
  86. data/docs/source/javascripts/lib/_energize.js +169 -0
  87. data/docs/source/javascripts/lib/_imagesloaded.min.js +7 -0
  88. data/docs/source/javascripts/lib/_jquery.highlight.js +108 -0
  89. data/docs/source/javascripts/lib/_jquery.tocify.js +1042 -0
  90. data/docs/source/javascripts/lib/_jquery_ui.js +566 -0
  91. data/docs/source/javascripts/lib/_lunr.js +1910 -0
  92. data/docs/source/layouts/layout.erb +102 -0
  93. data/docs/source/stylesheets/_icon-font.scss +38 -0
  94. data/docs/source/stylesheets/_normalize.css +427 -0
  95. data/docs/source/stylesheets/_syntax.scss.erb +27 -0
  96. data/docs/source/stylesheets/_variables.scss +109 -0
  97. data/docs/source/stylesheets/print.css.scss +142 -0
  98. data/docs/source/stylesheets/screen.css.scss +622 -0
  99. data/lib/solidus_api_v2.rb +5 -0
  100. data/lib/spree_api_v2/engine.rb +21 -0
  101. data/lib/spree_api_v2.rb +4 -0
  102. data/solidus_api_v2.gemspec +36 -0
  103. data/spec/controllers/spree/api/v2/children_controller_spec.rb +28 -0
  104. data/spec/controllers/spree/api/v2/countries_controller_spec.rb +25 -0
  105. data/spec/controllers/spree/api/v2/images_controller_spec.rb +93 -0
  106. data/spec/controllers/spree/api/v2/line_items_controller_spec.rb +86 -0
  107. data/spec/controllers/spree/api/v2/option_types_controller_spec.rb +73 -0
  108. data/spec/controllers/spree/api/v2/option_values_controller_spec.rb +88 -0
  109. data/spec/controllers/spree/api/v2/orders_controller_spec.rb +15 -0
  110. data/spec/controllers/spree/api/v2/prices_controller_spec.rb +55 -0
  111. data/spec/controllers/spree/api/v2/products_controller_spec.rb +95 -0
  112. data/spec/controllers/spree/api/v2/states_controller_spec.rb +42 -0
  113. data/spec/controllers/spree/api/v2/taxonomies_controller_spec.rb +31 -0
  114. data/spec/controllers/spree/api/v2/taxons_controller_spec.rb +54 -0
  115. data/spec/controllers/spree/api/v2/variants_controller_spec.rb +108 -0
  116. data/spec/models/spree/base_decorator_spec.rb +9 -0
  117. data/spec/models/spree/price_decorator_spec.rb +3 -0
  118. data/spec/serializers/spree/address_serializer_spec.rb +35 -0
  119. data/spec/serializers/spree/country_serializer_spec.rb +27 -0
  120. data/spec/serializers/spree/error_serializer_spec.rb +116 -0
  121. data/spec/serializers/spree/image_serializer_spec.rb +30 -0
  122. data/spec/serializers/spree/line_item_serializer_spec.rb +40 -0
  123. data/spec/serializers/spree/option_type_serializer_spec.rb +27 -0
  124. data/spec/serializers/spree/option_value_serializer_spec.rb +29 -0
  125. data/spec/serializers/spree/order_serializer_spec.rb +69 -0
  126. data/spec/serializers/spree/price_serializer_spec.rb +28 -0
  127. data/spec/serializers/spree/product_serializer_spec.rb +47 -0
  128. data/spec/serializers/spree/role_serializer_spec.rb +17 -0
  129. data/spec/serializers/spree/state_serializer_spec.rb +25 -0
  130. data/spec/serializers/spree/store_serializer_spec.rb +25 -0
  131. data/spec/serializers/spree/taxon_serializer_spec.rb +44 -0
  132. data/spec/serializers/spree/taxonomy_serializer_spec.rb +27 -0
  133. data/spec/serializers/spree/user_serializer_spec.rb +17 -0
  134. data/spec/serializers/spree/variant_serializer_spec.rb +55 -0
  135. data/spec/spec_helper.rb +51 -0
  136. data/spec/support/shoulda_matchers.rb +6 -0
  137. data/spree_api_v2.gemspec +36 -0
  138. metadata +437 -0
@@ -0,0 +1,188 @@
1
+ # Prices
2
+
3
+ ## List Prices
4
+
5
+ ```shell
6
+ curl "https://kabuni.com/api/v2/prices"
7
+ ```
8
+
9
+ ```json
10
+ {
11
+ "data": [
12
+ {
13
+ "id": "1",
14
+ "type": "spree_prices",
15
+ "attributes": {
16
+ "amount": "15.99",
17
+ "price": "15.99",
18
+ "display_amount": "$15.99 CAD",
19
+ "display_price": "$15.99 CAD",
20
+ "currency": "CAD"
21
+ },
22
+ "relationships": {
23
+ "variant": {
24
+ "data": {
25
+ "type": "spree_variants",
26
+ "id": "1"
27
+ }
28
+ }
29
+ }
30
+ }
31
+ ]
32
+ }
33
+ ```
34
+
35
+ List all of the prices in the database.
36
+
37
+ ## Show Price
38
+
39
+ ```shell
40
+ curl "https://kabuni.com/api/v2/prices/1"
41
+ ```
42
+
43
+ ```json
44
+ {
45
+ "data": {
46
+ "id": "1",
47
+ "type": "spree_prices",
48
+ "attributes": {
49
+ "amount": "15.99",
50
+ "price": "15.99",
51
+ "display_amount": "$15.99 CAD",
52
+ "display_price": "$15.99 CAD",
53
+ "currency": "CAD"
54
+ },
55
+ "relationships": {
56
+ "variant": {
57
+ "data": {
58
+ "type": "spree_variants",
59
+ "id": "1"
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ Fetch a price via its `id`.
68
+
69
+ ## Show Variant of a Price
70
+
71
+ ```shell
72
+ curl "https://kabuni.com/api/v2/prices/1/variant"
73
+ ```
74
+
75
+ ```json
76
+ {
77
+ "data": {
78
+ "id": "1",
79
+ "type": "spree_variants",
80
+ "attributes": {
81
+ "sku": "ROR-00011",
82
+ "weight": "0.0",
83
+ "height": "1.0",
84
+ "width": "3.0",
85
+ "depth": "2.0",
86
+ "is_master": true,
87
+ "position": 1,
88
+ "name": "Ruby on Rails Tote",
89
+ "price": "15.99",
90
+ "display_price" : "$15.99 CAD"
91
+ },
92
+ "relationships": {
93
+ "prices": {
94
+ "data": [
95
+ {
96
+ "type": "spree_prices",
97
+ "id": "1"
98
+ }
99
+ ]
100
+ },
101
+ "option_values": {
102
+ "data": [
103
+ {
104
+ "type": "spree_option_values",
105
+ "id": "1"
106
+ }
107
+ ]
108
+ },
109
+ "images": {
110
+ "data": [
111
+ {
112
+ "type": "spree_images",
113
+ "id": "1"
114
+ }
115
+ ]
116
+ },
117
+ "product": {
118
+ "data": {
119
+ "type": "spree_products",
120
+ "id": "1"
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ ```
127
+
128
+ Fetch the variant a price belongs to via the price's `id`.
129
+
130
+ ## Show Product of a Price
131
+
132
+ ```shell
133
+ curl "https://kabuni.com/api/v2/prices/1/product"
134
+ ```
135
+
136
+ ```json
137
+ {
138
+ "data": {
139
+ "id": "1",
140
+ "type": "spree_products",
141
+ "attributes": {
142
+ "name": "Ruby on Rails Tote",
143
+ "description": "Dolorem molestias sint maxime id at rem qui exercitationem. Neque voluptas corrupti magni suscipit iusto voluptatum. Ea quibusdam dolorem inventore praesentium sed dicta eveniet et. Rerum inventore laudantium quisquam earum consequatur dignissimos.",
144
+ "slug": "ruby-on-rails-tote",
145
+ "meta_description": null,
146
+ "meta_keywords": null,
147
+ "store_name": "Whole New Home"
148
+ },
149
+ "relationships": {
150
+ "master": {
151
+ "data": {
152
+ "type": "spree_variants",
153
+ "id": "1"
154
+ }
155
+ },
156
+ "variants": {
157
+ "data": []
158
+ },
159
+ "taxons": {
160
+ "data": [
161
+ {
162
+ "type": "spree_taxons",
163
+ "id": "18"
164
+ }
165
+ ]
166
+ },
167
+ "option_types": {
168
+ "data": [
169
+ {
170
+ "type": "spree_option_types",
171
+ "id": "1"
172
+ }
173
+ ]
174
+ },
175
+ "images": {
176
+ "data": [
177
+ {
178
+ "type": "spree_images",
179
+ "id": "1"
180
+ }
181
+ ]
182
+ }
183
+ }
184
+ }
185
+ }
186
+ ```
187
+
188
+ Fetch the product a price belongs to via the price's `id`.
@@ -0,0 +1,403 @@
1
+ # Products
2
+
3
+ ## List Products
4
+
5
+ ```shell
6
+ curl "https://kabuni.com/api/v2/products"
7
+ ```
8
+
9
+ ```json
10
+ {
11
+ "data": [
12
+ {
13
+ "id": "1",
14
+ "type": "spree_products",
15
+ "attributes": {
16
+ "name": "Ruby on Rails Tote",
17
+ "description": "Velit nemo odio ducimus nobis non doloremque beatae sunt. Totam quia voluptatum perferendis tempore sed voluptate consequuntur. Sit id corporis autem veritatis reprehenderit.",
18
+ "slug": "ruby-on-rails-tote",
19
+ "meta_description": null,
20
+ "meta_keywords": null,
21
+ "store_name": "Whole New Home"
22
+ },
23
+ "relationships": {
24
+ "master": {
25
+ "data": {
26
+ "type": "spree_variants",
27
+ "id": "1"
28
+ }
29
+ },
30
+ "variants": {
31
+ "data": []
32
+ },
33
+ "option_types": {
34
+ "data": [
35
+ {
36
+ "type": "spree_option_types",
37
+ "id": "1"
38
+ }
39
+ ]
40
+ },
41
+ "taxons": {
42
+ "data": [
43
+ {
44
+ "type": "spree_taxons",
45
+ "id": "1"
46
+ }
47
+ ]
48
+ }
49
+ },
50
+ "images": {
51
+ "data": [
52
+ {
53
+ "type": "spree_images",
54
+ "id": "1"
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ ]
60
+ }
61
+ ```
62
+
63
+ List all of the products in the database.
64
+
65
+ ## Show Product
66
+
67
+ ```shell
68
+ curl "https://kabuni.com/api/v2/products/1"
69
+ ```
70
+
71
+ ```json
72
+ {
73
+ "data": {
74
+ "id": "1",
75
+ "type": "spree_products",
76
+ "attributes": {
77
+ "name": "Ruby on Rails Tote",
78
+ "description": "Velit nemo odio ducimus nobis non doloremque beatae sunt. Totam quia voluptatum perferendis tempore sed voluptate consequuntur. Sit id corporis autem veritatis reprehenderit.",
79
+ "slug": "ruby-on-rails-tote",
80
+ "meta_description": null,
81
+ "meta_keywords": null,
82
+ "store_name": "Whole New Home"
83
+ },
84
+ "relationships": {
85
+ "master": {
86
+ "data": {
87
+ "type": "spree_variants",
88
+ "id": "1"
89
+ }
90
+ },
91
+ "variants": {
92
+ "data": []
93
+ },
94
+ "taxons": {
95
+ "data": [
96
+ {
97
+ "type": "spree_taxons",
98
+ "id": "1"
99
+ }
100
+ ]
101
+ },
102
+ "option_types": {
103
+ "data": [
104
+ {
105
+ "type": "spree_option_types",
106
+ "id": "1"
107
+ }
108
+ ]
109
+ },
110
+ "images": {
111
+ "data": [
112
+ {
113
+ "type": "spree_images",
114
+ "id": "1"
115
+ }
116
+ ]
117
+ }
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ Select a product via it's `id`.
124
+
125
+ ## List Option Types of a Product
126
+
127
+ ```shell
128
+ curl "https://kabuni.com/api/v2/products/1/option_types"
129
+ ```
130
+
131
+ ```json
132
+ {
133
+ "data": [
134
+ {
135
+ "id": "1",
136
+ "type": "spree_option_types",
137
+ "attributes": {
138
+ "name": "tshirt-size",
139
+ "presentation": "Size",
140
+ "position": 1
141
+ },
142
+ "relationships": {
143
+ "option_values": {
144
+ "data": [
145
+ {
146
+ "type": "spree_option_values",
147
+ "id": "1"
148
+ }
149
+ ]
150
+ },
151
+ "products": {
152
+ "data": [
153
+ {
154
+ "type": "spree_products",
155
+ "id": "1"
156
+ }
157
+ ]
158
+ }
159
+ }
160
+ }
161
+ ]
162
+ }
163
+ ```
164
+
165
+ List all of the option types that a product owns via the product's `id`.
166
+
167
+ ## Show Option Type of a Product
168
+
169
+ ```shell
170
+ curl "https://kabuni.com/api/v2/products/1/option_types/1"
171
+ ```
172
+
173
+ ```json
174
+ {
175
+ "data": {
176
+ "id": "1",
177
+ "type": "spree_option_types",
178
+ "attributes": {
179
+ "name": "tshirt-size",
180
+ "presentation": "Size",
181
+ "position": 1
182
+ },
183
+ "relationships": {
184
+ "option_values": {
185
+ "data": [
186
+ {
187
+ "type": "spree_option_values",
188
+ "id": "1"
189
+ }
190
+ ]
191
+ },
192
+ "products": {
193
+ "data": [
194
+ {
195
+ "type": "spree_products",
196
+ "id": "1"
197
+ }
198
+ ]
199
+ }
200
+ }
201
+ }
202
+ }
203
+ ```
204
+
205
+ Fetch an option type of a product by both of their `id`s.
206
+
207
+ ## List Variants of a Product
208
+
209
+ ```shell
210
+ curl "https://kabuni.com/api/v2/products/1/variants"
211
+ ```
212
+
213
+ ```json
214
+ {
215
+ "data": [
216
+ {
217
+ "id": "1",
218
+ "type": "spree_variants",
219
+ "attributes": {
220
+ "sku": "ROR-00011",
221
+ "weight": "0.0",
222
+ "height": "1.0",
223
+ "width": "3.0",
224
+ "depth": "2.0",
225
+ "is_master": true,
226
+ "position": 1,
227
+ "name": "Ruby on Rails Tote",
228
+ "price": "15.99",
229
+ "display_price" : "$15.99 CAD"
230
+ },
231
+ "relationships": {
232
+ "prices": {
233
+ "data": [
234
+ {
235
+ "type": "spree_prices",
236
+ "id": "1"
237
+ }
238
+ ]
239
+ },
240
+ "option_values": {
241
+ "data": [
242
+ {
243
+ "type": "spree_option_values",
244
+ "id": "1"
245
+ }
246
+ ]
247
+ },
248
+ "images": {
249
+ "data": [
250
+ {
251
+ "type": "spree_images",
252
+ "id": "1"
253
+ }
254
+ ]
255
+ },
256
+ "product": {
257
+ "data": {
258
+ "type": "spree_products",
259
+ "id": "1"
260
+ }
261
+ }
262
+ }
263
+ }
264
+ ]
265
+ }
266
+ ```
267
+
268
+ List all variants including the master of a product by the products `id`.
269
+
270
+ ## Show Variant of a Product
271
+
272
+ ```shell
273
+ curl "https://kabuni.com/api/v2/products/1/variants/1"
274
+ ```
275
+
276
+ ```json
277
+ {
278
+ "data": {
279
+ "id": "1",
280
+ "type": "spree_variants",
281
+ "attributes": {
282
+ "sku": "ROR-00011",
283
+ "weight": "0.0",
284
+ "height": "1.0",
285
+ "width": "3.0",
286
+ "depth": "2.0",
287
+ "is_master": true,
288
+ "position": 1,
289
+ "name": "Ruby on Rails Tote",
290
+ "price": "15.99",
291
+ "display_price" : "$15.99 CAD"
292
+ },
293
+ "relationships": {
294
+ "prices": {
295
+ "data": [
296
+ {
297
+ "type": "spree_prices",
298
+ "id": "1"
299
+ }
300
+ ]
301
+ },
302
+ "option_values": {
303
+ "data": [
304
+ {
305
+ "type": "spree_option_values",
306
+ "id": "1"
307
+ }
308
+ ]
309
+ },
310
+ "images": {
311
+ "data": [
312
+ {
313
+ "type": "spree_images",
314
+ "id": "1"
315
+ }
316
+ ]
317
+ },
318
+ "product": {
319
+ "data": {
320
+ "type": "spree_products",
321
+ "id": "1"
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }
327
+ ```
328
+
329
+ Fetch a variant or a product's master variant that a product owns by the products `id`.
330
+
331
+ ## List Images of a Product
332
+
333
+ ```shell
334
+ curl "https://kabuni.com/api/v2/products/1/images"
335
+ ```
336
+
337
+ ```json
338
+ {
339
+ "data": [
340
+ {
341
+ "id": "21",
342
+ "type": "spree_images",
343
+ "attributes": {
344
+ "position": 1,
345
+ "alt": null,
346
+ "links": {
347
+ "original": "/spree/products/21/original/ror_tote.jpeg?1442035828",
348
+ "mini": "/spree/products/21/mini/ror_tote.jpeg?1442035828",
349
+ "small": "/spree/products/21/small/ror_tote.jpeg?1442035828",
350
+ "product": "/spree/products/21/product/ror_tote.jpeg?1442035828",
351
+ "large": "/spree/products/21/large/ror_tote.jpeg?1442035828"
352
+ }
353
+ },
354
+ "relationships": {
355
+ "viewable": {
356
+ "data": {
357
+ "type": "spree_variants",
358
+ "id": "1"
359
+ }
360
+ }
361
+ }
362
+ }
363
+ ]
364
+ }
365
+ ```
366
+
367
+ List all of the images that belong to a product via the product's `id`.
368
+
369
+ ## Show Image of a Product
370
+
371
+ ```shell
372
+ curl "https://kabuni.com/api/v2/products/1/images/21"
373
+ ```
374
+
375
+ ```json
376
+ {
377
+ "data": {
378
+ "id": "21",
379
+ "type": "spree_images",
380
+ "attributes": {
381
+ "position": 1,
382
+ "alt": null,
383
+ "links": {
384
+ "original": "/spree/products/21/original/ror_tote.jpeg?1442035828",
385
+ "mini": "/spree/products/21/mini/ror_tote.jpeg?1442035828",
386
+ "small": "/spree/products/21/small/ror_tote.jpeg?1442035828",
387
+ "product": "/spree/products/21/product/ror_tote.jpeg?1442035828",
388
+ "large": "/spree/products/21/large/ror_tote.jpeg?1442035828"
389
+ }
390
+ },
391
+ "relationships": {
392
+ "viewable": {
393
+ "data": {
394
+ "type": "spree_variants",
395
+ "id": "1"
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+ ```
402
+
403
+ Fetch an image of a product via the product and the images' `id`.
@@ -0,0 +1,96 @@
1
+ # States
2
+
3
+ ## List States
4
+
5
+ ```shell
6
+ curl "https://kabuni.com/api/v2/states"
7
+ ```
8
+
9
+ ```json
10
+ {
11
+ "data": [
12
+ {
13
+ "id": "1",
14
+ "type": "spree_states",
15
+ "attributes": {
16
+ "name": "Canillo",
17
+ "abbr": "02"
18
+ },
19
+ "relationships": {
20
+ "country": {
21
+ "data": {
22
+ "type": "spree_countries",
23
+ "id": "1"
24
+ }
25
+ }
26
+ }
27
+ }
28
+ ]
29
+ }
30
+ ```
31
+
32
+ This will list all of the states.
33
+
34
+ ## Show State
35
+
36
+ ```shell
37
+ curl "https://kabuni.com/api/v2/states/1"
38
+ ```
39
+
40
+ ```json
41
+ {
42
+ "data": {
43
+ "id": "1",
44
+ "type": "spree_states",
45
+ "attributes": {
46
+ "name": "Canillo",
47
+ "abbr": "02"
48
+ },
49
+ "relationships": {
50
+ "country": {
51
+ "data": {
52
+ "type": "spree_countries",
53
+ "id": "1"
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ Select a state via its `id`.
62
+
63
+ ## Show Country of a States
64
+
65
+ ```shell
66
+ curl "https://kabuni.com/api/v2/states/1/countries"
67
+ ```
68
+
69
+ ```json
70
+ {
71
+ "data": {
72
+ "id": "1",
73
+ "type": "spree_countries",
74
+ "attributes": {
75
+ "iso_name": "ANDORRA",
76
+ "iso": "AD",
77
+ "iso3": "AND",
78
+ "name": "Andorra",
79
+ "numcode": 20,
80
+ "states_required": true
81
+ },
82
+ "relationships": {
83
+ "states": {
84
+ "data": [
85
+ {
86
+ "type": "spree_states",
87
+ "id": "1"
88
+ }
89
+ ]
90
+ }
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ View the country that a state belongs to via the state's `id`.