spree_api 4.2.4 → 4.3.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +14 -1
  3. data/app/controllers/concerns/spree/api/v2/caching.rb +33 -0
  4. data/app/controllers/concerns/spree/api/v2/product_list_includes.rb +23 -0
  5. data/app/controllers/spree/api/v1/classifications_controller.rb +4 -3
  6. data/app/controllers/spree/api/v1/orders_controller.rb +5 -1
  7. data/app/controllers/spree/api/v1/products_controller.rb +2 -2
  8. data/app/controllers/spree/api/v1/taxonomies_controller.rb +1 -1
  9. data/app/controllers/spree/api/v2/base_controller.rb +31 -6
  10. data/app/controllers/spree/api/v2/platform/addresses_controller.rb +19 -0
  11. data/app/controllers/spree/api/v2/platform/classifications_controller.rb +43 -0
  12. data/app/controllers/spree/api/v2/platform/cms_pages_controller.rb +15 -0
  13. data/app/controllers/spree/api/v2/platform/cms_sections_controller.rb +34 -0
  14. data/app/controllers/spree/api/v2/platform/countries_controller.rb +19 -0
  15. data/app/controllers/spree/api/v2/platform/menu_items_controller.rb +35 -0
  16. data/app/controllers/spree/api/v2/platform/menus_controller.rb +23 -0
  17. data/app/controllers/spree/api/v2/platform/option_types_controller.rb +15 -0
  18. data/app/controllers/spree/api/v2/platform/option_values_controller.rb +19 -0
  19. data/app/controllers/spree/api/v2/platform/products_controller.rb +33 -0
  20. data/app/controllers/spree/api/v2/platform/resource_controller.rb +115 -0
  21. data/app/controllers/spree/api/v2/platform/taxons_controller.rb +30 -0
  22. data/app/controllers/spree/api/v2/platform/users_controller.rb +28 -0
  23. data/app/controllers/spree/api/v2/resource_controller.rb +24 -7
  24. data/app/controllers/spree/api/v2/storefront/account/addresses_controller.rb +2 -14
  25. data/app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb +13 -11
  26. data/app/controllers/spree/api/v2/storefront/account/orders_controller.rb +6 -2
  27. data/app/controllers/spree/api/v2/storefront/account_controller.rb +32 -1
  28. data/app/controllers/spree/api/v2/storefront/cart_controller.rb +28 -6
  29. data/app/controllers/spree/api/v2/storefront/checkout_controller.rb +2 -1
  30. data/app/controllers/spree/api/v2/storefront/cms_pages_controller.rb +41 -0
  31. data/app/controllers/spree/api/v2/storefront/countries_controller.rb +16 -14
  32. data/app/controllers/spree/api/v2/storefront/menus_controller.rb +35 -0
  33. data/app/controllers/spree/api/v2/storefront/order_status_controller.rb +1 -1
  34. data/app/controllers/spree/api/v2/storefront/products_controller.rb +10 -12
  35. data/app/controllers/spree/api/v2/storefront/stores_controller.rb +1 -1
  36. data/app/controllers/spree/api/v2/storefront/taxons_controller.rb +7 -8
  37. data/app/helpers/spree/api/v2/display_money_helper.rb +2 -2
  38. data/app/models/spree/api_configuration.rb +4 -1
  39. data/app/models/spree/api_dependencies.rb +20 -5
  40. data/app/serializers/concerns/spree/api/v2/image_transformation_concern.rb +15 -0
  41. data/app/serializers/concerns/spree/api/v2/resource_serializer_concern.rb +16 -0
  42. data/app/serializers/concerns/spree/api/v2/taxon_image_transformation_concern.rb +15 -0
  43. data/app/serializers/spree/api/v2/base_serializer.rb +32 -0
  44. data/app/serializers/spree/api/v2/platform/address_serializer.rb +15 -0
  45. data/app/serializers/spree/api/v2/platform/base_serializer.rb +10 -0
  46. data/app/serializers/spree/api/v2/platform/classification_serializer.rb +14 -0
  47. data/app/serializers/spree/api/v2/platform/cms_page_serializer.rb +13 -0
  48. data/app/serializers/spree/api/v2/platform/cms_section_serializer.rb +11 -0
  49. data/app/serializers/spree/api/v2/platform/country_serializer.rb +13 -0
  50. data/app/serializers/spree/api/v2/platform/icon_serializer.rb +16 -0
  51. data/app/serializers/spree/api/v2/platform/image_serializer.rb +17 -0
  52. data/app/serializers/spree/api/v2/platform/menu_item_serializer.rb +45 -0
  53. data/app/serializers/spree/api/v2/platform/menu_serializer.rb +13 -0
  54. data/app/serializers/spree/api/v2/platform/option_type_serializer.rb +13 -0
  55. data/app/serializers/spree/api/v2/platform/option_value_serializer.rb +13 -0
  56. data/app/serializers/spree/api/v2/platform/product_property_serializer.rb +11 -0
  57. data/app/serializers/spree/api/v2/platform/product_serializer.rb +78 -0
  58. data/app/serializers/spree/api/v2/platform/state_serializer.rb +13 -0
  59. data/app/serializers/spree/api/v2/platform/stock_item_serializer.rb +20 -0
  60. data/app/serializers/spree/api/v2/platform/stock_location_serializer.rb +16 -0
  61. data/app/serializers/spree/api/v2/platform/store_serializer.rb +14 -0
  62. data/app/serializers/spree/api/v2/platform/tax_category_serializer.rb +13 -0
  63. data/app/serializers/spree/api/v2/platform/taxon_image_serializer.rb +15 -0
  64. data/app/serializers/spree/api/v2/platform/taxon_serializer.rb +38 -0
  65. data/app/serializers/spree/api/v2/platform/taxonomy_serializer.rb +14 -0
  66. data/app/serializers/spree/api/v2/platform/user_serializer.rb +37 -0
  67. data/app/serializers/spree/api/v2/platform/variant_serializer.rb +57 -0
  68. data/app/serializers/spree/v2/storefront/base_serializer.rb +3 -2
  69. data/app/serializers/spree/v2/storefront/cms_page_serializer.rb +14 -0
  70. data/app/serializers/spree/v2/storefront/cms_section_serializer.rb +28 -0
  71. data/app/serializers/spree/v2/storefront/country_serializer.rb +4 -4
  72. data/app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb +2 -0
  73. data/app/serializers/spree/v2/storefront/icon_serializer.rb +14 -0
  74. data/app/serializers/spree/v2/storefront/image_serializer.rb +3 -1
  75. data/app/serializers/spree/v2/storefront/menu_item_serializer.rb +43 -0
  76. data/app/serializers/spree/v2/storefront/menu_serializer.rb +13 -0
  77. data/app/serializers/spree/v2/storefront/payment_method_serializer.rb +4 -0
  78. data/app/serializers/spree/v2/storefront/product_property_serializer.rb +1 -1
  79. data/app/serializers/spree/v2/storefront/product_serializer.rb +21 -12
  80. data/app/serializers/spree/v2/storefront/store_serializer.rb +10 -0
  81. data/app/serializers/spree/v2/storefront/taxon_image_serializer.rb +3 -1
  82. data/app/serializers/spree/v2/storefront/taxon_serializer.rb +6 -5
  83. data/config/initializers/doorkeeper.rb +8 -1
  84. data/config/initializers/rabl.rb +9 -0
  85. data/config/locales/en.yml +1 -1
  86. data/config/routes.rb +115 -3
  87. data/db/migrate/20210727102516_change_integer_id_columns_type.rb +9 -0
  88. data/docs/oauth/index.yml +4 -4
  89. data/docs/v2/platform/index.yaml +3597 -0
  90. data/docs/v2/storefront/index.yaml +12117 -1610
  91. data/lib/spree/api/engine.rb +6 -17
  92. data/lib/spree/api/testing_support/v2/base.rb +1 -1
  93. data/lib/spree/api/testing_support/v2/platform_contexts.rb +214 -0
  94. data/lib/spree/api/testing_support/v2/serializers_params.rb +14 -0
  95. data/lib/spree/api.rb +1 -0
  96. data/spree_api.gemspec +6 -3
  97. metadata +114 -13
  98. data/app/assets/javascripts/spree/api/main.js +0 -36
  99. data/app/assets/javascripts/spree/api/storefront/cart.js +0 -49
@@ -23,13 +23,14 @@ module Spree
23
23
  belongs_to :taxonomy, record_type: :taxonomy
24
24
 
25
25
  has_many :children, record_type: :taxon, serializer: :taxon
26
- has_many :products, record_type: :product
26
+ has_many :products, record_type: :product,
27
+ if: proc { |_taxon, params| params && params[:include_products] == true }
27
28
 
28
29
  has_one :image,
29
- object_method_name: :icon,
30
- id_method_name: :icon_id,
31
- record_type: :taxon_image,
32
- serializer: :taxon_image
30
+ object_method_name: :icon,
31
+ id_method_name: :icon_id,
32
+ record_type: :taxon_image,
33
+ serializer: :taxon_image
33
34
  end
34
35
  end
35
36
  end
@@ -2,6 +2,7 @@ Doorkeeper.configure do
2
2
  orm :active_record
3
3
  use_refresh_token
4
4
  api_only
5
+ base_controller 'ActionController::API'
5
6
 
6
7
  skip_client_authentication_for_password_grant { true } if defined?(skip_client_authentication_for_password_grant)
7
8
 
@@ -23,9 +24,15 @@ Doorkeeper.configure do
23
24
  current_spree_user&.has_spree_role?('admin') || redirect_to(routes.root_url)
24
25
  end
25
26
 
26
- grant_flows %w(password)
27
+ grant_flows %w[password client_credentials]
28
+
29
+ allow_blank_redirect_uri true
30
+
31
+ handle_auth_errors :raise
27
32
 
28
33
  access_token_methods :from_bearer_authorization, :from_access_token_param
34
+
35
+ optional_scopes :admin, :write, :read
29
36
  end
30
37
 
31
38
  Doorkeeper::AccessGrant.class_eval do
@@ -0,0 +1,9 @@
1
+ Rabl.configure do |config|
2
+ config.include_json_root = false
3
+ config.include_child_root = false
4
+
5
+ # Motivation here it make it call as_json when rendering timestamps
6
+ # and therefore display miliseconds. Otherwise it would fall to
7
+ # JSON.dump which doesn't display the miliseconds
8
+ config.json_engine = ActiveSupport::JSON
9
+ end
@@ -26,7 +26,7 @@ en:
26
26
  cannot_ready: "Cannot ready shipment."
27
27
  stock_location_required: "A stock_location_id parameter must be provided in order to retrieve stock movements."
28
28
  invalid_taxonomy_id: "Invalid taxonomy id."
29
- shipment_transfer_errors_occurred: "Following errors occured while attempting this action:"
29
+ shipment_transfer_errors_occurred: "Following errors occurred while attempting this action:"
30
30
  negative_quantity: "quantity is negative"
31
31
  wrong_shipment_target: "target shipment is the same as original shipment"
32
32
 
data/config/routes.rb CHANGED
@@ -128,7 +128,7 @@ Spree::Core::Engine.add_routes do
128
128
 
129
129
  namespace :v2 do
130
130
  namespace :storefront do
131
- resource :cart, controller: :cart, only: %i[show create] do
131
+ resource :cart, controller: :cart, only: %i[show create destroy] do
132
132
  post :add_item
133
133
  patch :empty
134
134
  delete 'remove_line_item/:line_item_id', to: 'cart#remove_line_item', as: :cart_remove_line_item
@@ -149,11 +149,11 @@ Spree::Core::Engine.add_routes do
149
149
  get :shipping_rates
150
150
  end
151
151
 
152
- resource :account, controller: :account, only: %i[show]
152
+ resource :account, controller: :account, only: %i[show create update]
153
153
 
154
154
  namespace :account do
155
155
  resources :addresses, controller: :addresses
156
- resources :credit_cards, controller: :credit_cards, only: %i[index show]
156
+ resources :credit_cards, controller: :credit_cards, only: %i[index show destroy]
157
157
  resources :orders, controller: :orders, only: %i[index show]
158
158
  end
159
159
 
@@ -163,6 +163,118 @@ Spree::Core::Engine.add_routes do
163
163
  resources :products, only: %i[index show]
164
164
  resources :taxons, only: %i[index show], id: /.+/
165
165
  get '/stores/:code', to: 'stores#show', as: :store
166
+
167
+ resources :menus, only: %i[index show]
168
+ resources :cms_pages, only: %i[index show]
169
+ end
170
+
171
+ namespace :platform do
172
+ # Promotions API
173
+ resources :promotions
174
+
175
+ # Returns API
176
+ resources :customer_returns
177
+ resources :reimbursements
178
+ resources :return_authorizations do
179
+ member do
180
+ put :add
181
+ put :cancel
182
+ put :receive
183
+ end
184
+ end
185
+
186
+ # Product Catalog API
187
+ resources :products
188
+ resources :taxonomies
189
+ resources :taxons
190
+ resources :classifications do
191
+ member do
192
+ put :reposition
193
+ end
194
+ end
195
+ resources :images
196
+ resources :variants
197
+ resources :properties
198
+ resources :product_properties
199
+ resources :option_types
200
+ resources :option_values
201
+
202
+ # Order API
203
+ resources :orders do
204
+ member do
205
+ put :next
206
+ put :advance
207
+ put :approve
208
+ put :cancel
209
+ put :empty
210
+ put :apply_coupon_code
211
+ put :remove_coupon_code
212
+ end
213
+ end
214
+ resources :line_items
215
+ resources :payments do
216
+ member do
217
+ put :authorize
218
+ put :capture
219
+ put :purchase
220
+ put :void
221
+ put :credit
222
+ end
223
+ end
224
+
225
+ # Geo API
226
+ resources :zones
227
+ resources :countries, only: [:index, :show]
228
+ resources :states, only: [:index, :show]
229
+
230
+ # Shipment API
231
+ resources :shipments do
232
+ collection do
233
+ post 'transfer_to_location'
234
+ post 'transfer_to_shipment'
235
+ end
236
+ member do
237
+ put :ready
238
+ put :ship
239
+ put :add
240
+ put :remove
241
+ end
242
+ end
243
+
244
+ # Inventory API
245
+ resources :inventory_units
246
+ resources :stock_items
247
+ resources :stock_locations
248
+ resources :stock_movements
249
+
250
+ # User API
251
+ resources :users
252
+ resources :credit_cards
253
+ resources :addresses
254
+
255
+ # Menu API
256
+ resources :menus
257
+ resources :menu_items do
258
+ member do
259
+ patch :reposition
260
+ end
261
+ end
262
+
263
+ # CMS Pages API
264
+ resources :cms_pages do
265
+ member do
266
+ patch :toggle_visibility
267
+ end
268
+ end
269
+
270
+ resource :cms_sections do
271
+ member do
272
+ patch :reposition
273
+ end
274
+ end
275
+
276
+ # Store API
277
+ resources :stores
166
278
  end
167
279
  end
168
280
 
@@ -0,0 +1,9 @@
1
+ class ChangeIntegerIdColumnsType < ActiveRecord::Migration[5.2]
2
+ def change
3
+ change_column :spree_oauth_access_grants, :resource_owner_id, :bigint
4
+ change_column :spree_oauth_access_grants, :application_id, :bigint
5
+
6
+ change_column :spree_oauth_access_tokens, :resource_owner_id, :bigint
7
+ change_column :spree_oauth_access_tokens, :application_id, :bigint
8
+ end
9
+ end
data/docs/oauth/index.yml CHANGED
@@ -6,8 +6,8 @@ servers:
6
6
  description: localhost
7
7
  info:
8
8
  version: 1.0.0
9
- title: Spree OAuth 2.0 Authentication
10
- description: "For API v2 Spree uses [Doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) gem for handling OAuth athentication. \n\nSpree supports new token creation and refreshing of existing tokens."
9
+ title: Authentication
10
+ description: "Spree uses oAuth based Authentication via short-lived Bearer tokens. You can either create a new one or refresh existing token."
11
11
  contact:
12
12
  name: Spark Solutions
13
13
  url: 'https://sparksolutions.co'
@@ -18,13 +18,13 @@ info:
18
18
  paths:
19
19
  /spree_oauth/token:
20
20
  post:
21
- description: Creates or refreshes a Bearer token required to authorize calls API calls
21
+ description: Creates or refreshes a Bearer token required to authorize API calls
22
22
  tags:
23
23
  - Token
24
24
  operationId: Create or Refresh Token
25
25
  responses:
26
26
  '200':
27
- description: Token was succesfully created or refreshed
27
+ description: Token was successfully created or refreshed
28
28
  content:
29
29
  application/json:
30
30
  schema:
@@ -0,0 +1,3597 @@
1
+ ---
2
+ openapi: 3.0.1
3
+ info:
4
+ title: Platform API V2
5
+ version: v2
6
+ paths:
7
+ "/api/v2/platform/addresses":
8
+ get:
9
+ summary: Returns a list of Addresses
10
+ tags:
11
+ - Addresses
12
+ security:
13
+ - bearer_auth: []
14
+ parameters:
15
+ - name: page
16
+ in: query
17
+ example: 1
18
+ schema:
19
+ type: integer
20
+ - name: per_page
21
+ in: query
22
+ example: 50
23
+ schema:
24
+ type: integer
25
+ - name: include
26
+ in: query
27
+ description: 'Select which associated resources you would like to fetch, see:
28
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
29
+ example: user,country,state
30
+ schema:
31
+ type: string
32
+ - name: filter
33
+ in: query
34
+ description: ''
35
+ example: user_id_eq=1&firstname_cont=Joh
36
+ schema:
37
+ type: string
38
+ responses:
39
+ '200':
40
+ description: Records returned
41
+ content:
42
+ application/vnd.api+json:
43
+ examples:
44
+ Example:
45
+ value:
46
+ data:
47
+ - id: '1'
48
+ type: address
49
+ attributes:
50
+ firstname: John
51
+ lastname: Doe
52
+ address1: 1 Lovely Street
53
+ address2: Northwest
54
+ city: Herndon
55
+ zipcode: '35005'
56
+ phone: 555-555-0199
57
+ state_name:
58
+ alternative_phone: 555-555-0199
59
+ company: Company
60
+ created_at: '2021-08-23T21:28:22.108Z'
61
+ updated_at: '2021-08-23T21:28:22.108Z'
62
+ deleted_at:
63
+ label:
64
+ relationships:
65
+ country:
66
+ data:
67
+ id: '1'
68
+ type: country
69
+ state:
70
+ data:
71
+ id: '1'
72
+ type: state
73
+ user:
74
+ data:
75
+ - id: '2'
76
+ type: address
77
+ attributes:
78
+ firstname: John
79
+ lastname: Doe
80
+ address1: 2 Lovely Street
81
+ address2: Northwest
82
+ city: Herndon
83
+ zipcode: '35005'
84
+ phone: 555-555-0199
85
+ state_name:
86
+ alternative_phone: 555-555-0199
87
+ company: Company
88
+ created_at: '2021-08-23T21:28:22.134Z'
89
+ updated_at: '2021-08-23T21:28:22.134Z'
90
+ deleted_at:
91
+ label:
92
+ relationships:
93
+ country:
94
+ data:
95
+ id: '1'
96
+ type: country
97
+ state:
98
+ data:
99
+ id: '2'
100
+ type: state
101
+ user:
102
+ data:
103
+ meta:
104
+ count: 2
105
+ total_count: 2
106
+ total_pages: 1
107
+ links:
108
+ self: http://www.example.com/api/v2/platform/addresses?page=1&per_page=&include=&filter=
109
+ next: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
110
+ prev: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
111
+ last: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
112
+ first: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
113
+ '401':
114
+ description: Authentication Failed
115
+ content:
116
+ application/vnd.api+json:
117
+ examples:
118
+ Example:
119
+ value:
120
+ error: The access token is invalid
121
+ post:
122
+ summary: Creates an Address
123
+ tags:
124
+ - Addresses
125
+ security:
126
+ - bearer_auth: []
127
+ parameters:
128
+ - name: include
129
+ in: query
130
+ description: 'Select which associated resources you would like to fetch, see:
131
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
132
+ example: user,country,state
133
+ schema:
134
+ type: string
135
+ responses:
136
+ '201':
137
+ description: record created
138
+ content:
139
+ application/vnd.api+json:
140
+ examples:
141
+ Example:
142
+ value:
143
+ data:
144
+ id: '1'
145
+ type: address
146
+ attributes:
147
+ firstname: John
148
+ lastname: Doe
149
+ address1: 5 Lovely Street
150
+ address2: Northwest
151
+ city: Herndon
152
+ zipcode: '35005'
153
+ phone: 555-555-0199
154
+ state_name:
155
+ alternative_phone: 555-555-0199
156
+ company: Company
157
+ created_at: '2021-08-23T21:28:22.275Z'
158
+ updated_at: '2021-08-23T21:28:22.275Z'
159
+ deleted_at:
160
+ label:
161
+ relationships:
162
+ country:
163
+ data:
164
+ id: '2'
165
+ type: country
166
+ state:
167
+ data:
168
+ id: '1'
169
+ type: state
170
+ user:
171
+ data:
172
+ id: '1'
173
+ type: user
174
+ '422':
175
+ description: invalid request
176
+ content:
177
+ application/vnd.api+json:
178
+ examples:
179
+ Example:
180
+ value:
181
+ error: First Name can't be blank, Last Name can't be blank, Address
182
+ can't be blank, City can't be blank, Country can't be blank,
183
+ Zip Code can't be blank, and Phone can't be blank
184
+ errors:
185
+ firstname:
186
+ - can't be blank
187
+ lastname:
188
+ - can't be blank
189
+ address1:
190
+ - can't be blank
191
+ city:
192
+ - can't be blank
193
+ country:
194
+ - can't be blank
195
+ zipcode:
196
+ - can't be blank
197
+ phone:
198
+ - can't be blank
199
+ requestBody:
200
+ content:
201
+ application/json:
202
+ schema:
203
+ "$ref": "#/components/schemas/addresses_params"
204
+ "/api/v2/platform/addresses/{id}":
205
+ get:
206
+ summary: Returns an Address
207
+ tags:
208
+ - Addresses
209
+ security:
210
+ - bearer_auth: []
211
+ parameters:
212
+ - name: id
213
+ in: path
214
+ required: true
215
+ schema:
216
+ type: string
217
+ - name: include
218
+ in: query
219
+ description: 'Select which associated resources you would like to fetch, see:
220
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
221
+ example: user,country,state
222
+ schema:
223
+ type: string
224
+ responses:
225
+ '200':
226
+ description: Record found
227
+ content:
228
+ application/vnd.api+json:
229
+ examples:
230
+ Example:
231
+ value:
232
+ data:
233
+ id: '1'
234
+ type: address
235
+ attributes:
236
+ firstname: John
237
+ lastname: Doe
238
+ address1: 6 Lovely Street
239
+ address2: Northwest
240
+ city: Herndon
241
+ zipcode: '35005'
242
+ phone: 555-555-0199
243
+ state_name:
244
+ alternative_phone: 555-555-0199
245
+ company: Company
246
+ created_at: '2021-08-23T21:28:22.297Z'
247
+ updated_at: '2021-08-23T21:28:22.297Z'
248
+ deleted_at:
249
+ label:
250
+ relationships:
251
+ country:
252
+ data:
253
+ id: '1'
254
+ type: country
255
+ state:
256
+ data:
257
+ id: '1'
258
+ type: state
259
+ user:
260
+ data:
261
+ '404':
262
+ description: Record not found
263
+ content:
264
+ application/vnd.api+json:
265
+ examples:
266
+ Example:
267
+ value:
268
+ error: The resource you were looking for could not be found.
269
+ '401':
270
+ description: Authentication Failed
271
+ content:
272
+ application/vnd.api+json:
273
+ examples:
274
+ Example:
275
+ value:
276
+ error: The access token is invalid
277
+ put:
278
+ summary: Updates an Address
279
+ tags:
280
+ - Addresses
281
+ security:
282
+ - bearer_auth: []
283
+ parameters:
284
+ - name: id
285
+ in: path
286
+ required: true
287
+ schema:
288
+ type: string
289
+ - name: include
290
+ in: query
291
+ description: 'Select which associated resources you would like to fetch, see:
292
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
293
+ example: user,country,state
294
+ schema:
295
+ type: string
296
+ responses:
297
+ '200':
298
+ description: record updated
299
+ content:
300
+ application/vnd.api+json:
301
+ examples:
302
+ Example:
303
+ value:
304
+ data:
305
+ id: '1'
306
+ type: address
307
+ attributes:
308
+ firstname: Jack
309
+ lastname: Doe
310
+ address1: 8 Lovely Street
311
+ address2: Northwest
312
+ city: Herndon
313
+ zipcode: '35005'
314
+ phone: 555-555-0199
315
+ state_name:
316
+ alternative_phone: 555-555-0199
317
+ company: Company
318
+ created_at: '2021-08-23T21:28:22.331Z'
319
+ updated_at: '2021-08-23T21:28:22.336Z'
320
+ deleted_at:
321
+ label:
322
+ relationships:
323
+ country:
324
+ data:
325
+ id: '1'
326
+ type: country
327
+ state:
328
+ data:
329
+ id: '1'
330
+ type: state
331
+ user:
332
+ data:
333
+ '422':
334
+ description: invalid request
335
+ content:
336
+ application/vnd.api+json:
337
+ examples:
338
+ Example:
339
+ value:
340
+ error: First Name can't be blank and Last Name can't be blank
341
+ errors:
342
+ firstname:
343
+ - can't be blank
344
+ lastname:
345
+ - can't be blank
346
+ '404':
347
+ description: Record not found
348
+ content:
349
+ application/vnd.api+json:
350
+ examples:
351
+ Example:
352
+ value:
353
+ error: The resource you were looking for could not be found.
354
+ '401':
355
+ description: Authentication Failed
356
+ content:
357
+ application/vnd.api+json:
358
+ examples:
359
+ Example:
360
+ value:
361
+ error: The access token is invalid
362
+ requestBody:
363
+ content:
364
+ application/json:
365
+ schema:
366
+ "$ref": "#/components/schemas/addresses_params"
367
+ delete:
368
+ summary: Deletes an Address
369
+ tags:
370
+ - Addresses
371
+ security:
372
+ - bearer_auth: []
373
+ parameters:
374
+ - name: id
375
+ in: path
376
+ required: true
377
+ schema:
378
+ type: string
379
+ responses:
380
+ '204':
381
+ description: Record deleted
382
+ '404':
383
+ description: Record not found
384
+ content:
385
+ application/vnd.api+json:
386
+ examples:
387
+ Example:
388
+ value:
389
+ error: The resource you were looking for could not be found.
390
+ '401':
391
+ description: Authentication Failed
392
+ content:
393
+ application/vnd.api+json:
394
+ examples:
395
+ Example:
396
+ value:
397
+ error: The access token is invalid
398
+ "/api/v2/platform/classifications":
399
+ get:
400
+ summary: Returns a list of Classifications
401
+ tags:
402
+ - Classifications
403
+ security:
404
+ - bearer_auth: []
405
+ parameters:
406
+ - name: page
407
+ in: query
408
+ example: 1
409
+ schema:
410
+ type: integer
411
+ - name: per_page
412
+ in: query
413
+ example: 50
414
+ schema:
415
+ type: integer
416
+ - name: include
417
+ in: query
418
+ description: 'Select which associated resources you would like to fetch, see:
419
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
420
+ example: product,taxon
421
+ schema:
422
+ type: string
423
+ - name: filter
424
+ in: query
425
+ description: ''
426
+ example: taxon_id_eq=1
427
+ schema:
428
+ type: string
429
+ responses:
430
+ '200':
431
+ description: Records returned
432
+ content:
433
+ application/vnd.api+json:
434
+ examples:
435
+ Example:
436
+ value:
437
+ data:
438
+ - id: '1'
439
+ type: classification
440
+ attributes:
441
+ position: 1
442
+ created_at: '2021-08-23T21:28:22.534Z'
443
+ updated_at: '2021-08-23T21:28:22.534Z'
444
+ relationships:
445
+ product:
446
+ data:
447
+ id: '1'
448
+ type: product
449
+ taxon:
450
+ data:
451
+ id: '2'
452
+ type: taxon
453
+ - id: '2'
454
+ type: classification
455
+ attributes:
456
+ position: 1
457
+ created_at: '2021-08-23T21:28:22.569Z'
458
+ updated_at: '2021-08-23T21:28:22.569Z'
459
+ relationships:
460
+ product:
461
+ data:
462
+ id: '2'
463
+ type: product
464
+ taxon:
465
+ data:
466
+ id: '4'
467
+ type: taxon
468
+ meta:
469
+ count: 2
470
+ total_count: 2
471
+ total_pages: 1
472
+ links:
473
+ self: http://www.example.com/api/v2/platform/classifications?page=1&per_page=&include=&filter=
474
+ next: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
475
+ prev: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
476
+ last: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
477
+ first: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
478
+ '401':
479
+ description: Authentication Failed
480
+ content:
481
+ application/vnd.api+json:
482
+ examples:
483
+ Example:
484
+ value:
485
+ error: The access token is invalid
486
+ post:
487
+ summary: Creates a Classification
488
+ tags:
489
+ - Classifications
490
+ security:
491
+ - bearer_auth: []
492
+ parameters:
493
+ - name: include
494
+ in: query
495
+ description: 'Select which associated resources you would like to fetch, see:
496
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
497
+ example: product,taxon
498
+ schema:
499
+ type: string
500
+ responses:
501
+ '201':
502
+ description: record created
503
+ content:
504
+ application/vnd.api+json:
505
+ examples:
506
+ Example:
507
+ value:
508
+ data:
509
+ id: '1'
510
+ type: classification
511
+ attributes:
512
+ position: 1
513
+ created_at: '2021-08-23T21:28:22.728Z'
514
+ updated_at: '2021-08-23T21:28:22.728Z'
515
+ relationships:
516
+ product:
517
+ data:
518
+ id: '1'
519
+ type: product
520
+ taxon:
521
+ data:
522
+ id: '2'
523
+ type: taxon
524
+ '422':
525
+ description: invalid request
526
+ content:
527
+ application/vnd.api+json:
528
+ examples:
529
+ Example:
530
+ value:
531
+ error: Taxon can't be blank and Product can't be blank
532
+ errors:
533
+ taxon:
534
+ - can't be blank
535
+ product:
536
+ - can't be blank
537
+ requestBody:
538
+ content:
539
+ application/json:
540
+ schema:
541
+ "$ref": "#/components/schemas/classifications_params"
542
+ "/api/v2/platform/classifications/{id}":
543
+ get:
544
+ summary: Returns a Classification
545
+ tags:
546
+ - Classifications
547
+ security:
548
+ - bearer_auth: []
549
+ parameters:
550
+ - name: id
551
+ in: path
552
+ required: true
553
+ schema:
554
+ type: string
555
+ - name: include
556
+ in: query
557
+ description: 'Select which associated resources you would like to fetch, see:
558
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
559
+ example: product,taxon
560
+ schema:
561
+ type: string
562
+ responses:
563
+ '200':
564
+ description: Record found
565
+ content:
566
+ application/vnd.api+json:
567
+ examples:
568
+ Example:
569
+ value:
570
+ data:
571
+ id: '1'
572
+ type: classification
573
+ attributes:
574
+ position: 1
575
+ created_at: '2021-08-23T21:28:22.787Z'
576
+ updated_at: '2021-08-23T21:28:22.787Z'
577
+ relationships:
578
+ product:
579
+ data:
580
+ id: '1'
581
+ type: product
582
+ taxon:
583
+ data:
584
+ id: '2'
585
+ type: taxon
586
+ '404':
587
+ description: Record not found
588
+ content:
589
+ application/vnd.api+json:
590
+ examples:
591
+ Example:
592
+ value:
593
+ error: The resource you were looking for could not be found.
594
+ '401':
595
+ description: Authentication Failed
596
+ content:
597
+ application/vnd.api+json:
598
+ examples:
599
+ Example:
600
+ value:
601
+ error: The access token is invalid
602
+ put:
603
+ summary: Updates a Classification
604
+ tags:
605
+ - Classifications
606
+ security:
607
+ - bearer_auth: []
608
+ parameters:
609
+ - name: id
610
+ in: path
611
+ required: true
612
+ schema:
613
+ type: string
614
+ - name: include
615
+ in: query
616
+ description: 'Select which associated resources you would like to fetch, see:
617
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
618
+ example: product,taxon
619
+ schema:
620
+ type: string
621
+ responses:
622
+ '200':
623
+ description: record updated
624
+ content:
625
+ application/vnd.api+json:
626
+ examples:
627
+ Example:
628
+ value:
629
+ data:
630
+ id: '1'
631
+ type: classification
632
+ attributes:
633
+ position: 1
634
+ created_at: '2021-08-23T21:28:22.904Z'
635
+ updated_at: '2021-08-23T21:28:22.904Z'
636
+ relationships:
637
+ product:
638
+ data:
639
+ id: '1'
640
+ type: product
641
+ taxon:
642
+ data:
643
+ id: '2'
644
+ type: taxon
645
+ '422':
646
+ description: invalid request
647
+ content:
648
+ application/vnd.api+json:
649
+ examples:
650
+ Example:
651
+ value:
652
+ error: Product can't be blank
653
+ errors:
654
+ product:
655
+ - can't be blank
656
+ '404':
657
+ description: Record not found
658
+ content:
659
+ application/vnd.api+json:
660
+ examples:
661
+ Example:
662
+ value:
663
+ error: The resource you were looking for could not be found.
664
+ '401':
665
+ description: Authentication Failed
666
+ content:
667
+ application/vnd.api+json:
668
+ examples:
669
+ Example:
670
+ value:
671
+ error: The access token is invalid
672
+ requestBody:
673
+ content:
674
+ application/json:
675
+ schema:
676
+ "$ref": "#/components/schemas/classifications_params"
677
+ delete:
678
+ summary: Deletes a Classification
679
+ tags:
680
+ - Classifications
681
+ security:
682
+ - bearer_auth: []
683
+ parameters:
684
+ - name: id
685
+ in: path
686
+ required: true
687
+ schema:
688
+ type: string
689
+ responses:
690
+ '204':
691
+ description: Record deleted
692
+ '404':
693
+ description: Record not found
694
+ content:
695
+ application/vnd.api+json:
696
+ examples:
697
+ Example:
698
+ value:
699
+ error: The resource you were looking for could not be found.
700
+ '401':
701
+ description: Authentication Failed
702
+ content:
703
+ application/vnd.api+json:
704
+ examples:
705
+ Example:
706
+ value:
707
+ error: The access token is invalid
708
+ "/api/v2/platform/classifications/{id}/reposition":
709
+ put:
710
+ summary: Reposition a Classification
711
+ tags:
712
+ - Classifications
713
+ security:
714
+ - bearer_auth: []
715
+ parameters:
716
+ - name: id
717
+ in: path
718
+ required: true
719
+ schema:
720
+ type: string
721
+ - name: include
722
+ in: query
723
+ description: 'Select which associated resources you would like to fetch, see:
724
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
725
+ example: product,taxon
726
+ schema:
727
+ type: string
728
+ responses:
729
+ '200':
730
+ description: record updated
731
+ content:
732
+ application/vnd.api+json:
733
+ examples:
734
+ Example:
735
+ value:
736
+ data:
737
+ id: '1'
738
+ type: classification
739
+ attributes:
740
+ position: 2
741
+ created_at: '2021-08-23T21:28:23.191Z'
742
+ updated_at: '2021-08-23T21:28:23.199Z'
743
+ relationships:
744
+ product:
745
+ data:
746
+ id: '1'
747
+ type: product
748
+ taxon:
749
+ data:
750
+ id: '2'
751
+ type: taxon
752
+ '422':
753
+ description: invalid request
754
+ content:
755
+ application/vnd.api+json:
756
+ examples:
757
+ Example:
758
+ value:
759
+ error: is not a number
760
+ errors: {}
761
+ '404':
762
+ description: Record not found
763
+ content:
764
+ application/vnd.api+json:
765
+ examples:
766
+ Example:
767
+ value:
768
+ error: The resource you were looking for could not be found.
769
+ '401':
770
+ description: Authentication Failed
771
+ content:
772
+ application/vnd.api+json:
773
+ examples:
774
+ Example:
775
+ value:
776
+ error: The access token is invalid
777
+ requestBody:
778
+ content:
779
+ application/json:
780
+ schema:
781
+ "$ref": "#/components/schemas/classification_params"
782
+ "/api/v2/platform/countries":
783
+ get:
784
+ summary: Returns a list of Countries
785
+ tags:
786
+ - Countries
787
+ security:
788
+ - bearer_auth: []
789
+ responses:
790
+ '200':
791
+ description: Records returned
792
+ content:
793
+ application/vnd.api+json:
794
+ examples:
795
+ Example:
796
+ value:
797
+ data:
798
+ - id: '1'
799
+ type: country
800
+ attributes:
801
+ iso_name: UNITED STATES
802
+ iso: US
803
+ iso3: IS34
804
+ name: United States of America
805
+ numcode: 840
806
+ states_required: true
807
+ updated_at: '2021-08-23T21:28:23.328Z'
808
+ zipcode_required: true
809
+ created_at: '2021-08-23T21:28:23.328Z'
810
+ relationships:
811
+ states:
812
+ data: []
813
+ - id: '2'
814
+ type: country
815
+ attributes:
816
+ iso_name: ISO_NAME_2
817
+ iso: I2
818
+ iso3: IS35
819
+ name: NAME_2
820
+ numcode: 840
821
+ states_required: false
822
+ updated_at: '2021-08-23T21:28:23.332Z'
823
+ zipcode_required: true
824
+ created_at: '2021-08-23T21:28:23.332Z'
825
+ relationships:
826
+ states:
827
+ data: []
828
+ - id: '3'
829
+ type: country
830
+ attributes:
831
+ iso_name: ISO_NAME_3
832
+ iso: I3
833
+ iso3: IS36
834
+ name: NAME_3
835
+ numcode: 840
836
+ states_required: false
837
+ updated_at: '2021-08-23T21:28:23.333Z'
838
+ zipcode_required: true
839
+ created_at: '2021-08-23T21:28:23.333Z'
840
+ relationships:
841
+ states:
842
+ data: []
843
+ meta:
844
+ count: 3
845
+ total_count: 3
846
+ total_pages: 1
847
+ links:
848
+ self: http://www.example.com/api/v2/platform/countries
849
+ next: http://www.example.com/api/v2/platform/countries?page=1
850
+ prev: http://www.example.com/api/v2/platform/countries?page=1
851
+ last: http://www.example.com/api/v2/platform/countries?page=1
852
+ first: http://www.example.com/api/v2/platform/countries?page=1
853
+ '401':
854
+ description: Authentication Failed
855
+ content:
856
+ application/vnd.api+json:
857
+ examples:
858
+ Example:
859
+ value:
860
+ error: The access token is invalid
861
+ "/api/v2/platform/countries/{id}":
862
+ get:
863
+ summary: Returns a Country
864
+ tags:
865
+ - Countries
866
+ security:
867
+ - bearer_auth: []
868
+ parameters:
869
+ - name: id
870
+ in: path
871
+ required: true
872
+ schema:
873
+ type: string
874
+ responses:
875
+ '200':
876
+ description: Record found
877
+ content:
878
+ application/vnd.api+json:
879
+ examples:
880
+ Example:
881
+ value:
882
+ data:
883
+ id: '2'
884
+ type: country
885
+ attributes:
886
+ iso_name: ISO_NAME_6
887
+ iso: I6
888
+ iso3: IS41
889
+ name: NAME_6
890
+ numcode: 840
891
+ states_required: false
892
+ updated_at: '2021-08-23T21:28:23.362Z'
893
+ zipcode_required: true
894
+ created_at: '2021-08-23T21:28:23.362Z'
895
+ relationships:
896
+ states:
897
+ data: []
898
+ '404':
899
+ description: Record not found
900
+ content:
901
+ application/vnd.api+json:
902
+ examples:
903
+ Example:
904
+ value:
905
+ error: The resource you were looking for could not be found.
906
+ '401':
907
+ description: Authentication Failed
908
+ content:
909
+ application/vnd.api+json:
910
+ examples:
911
+ Example:
912
+ value:
913
+ error: The access token is invalid
914
+ "/api/v2/platform/menu_items":
915
+ get:
916
+ summary: Returns a list of MenuItems
917
+ tags:
918
+ - MenuItems
919
+ security:
920
+ - bearer_auth: []
921
+ parameters:
922
+ - name: page
923
+ in: query
924
+ example: 1
925
+ schema:
926
+ type: integer
927
+ - name: per_page
928
+ in: query
929
+ example: 50
930
+ schema:
931
+ type: integer
932
+ - name: include
933
+ in: query
934
+ description: 'Select which associated resources you would like to fetch, see:
935
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
936
+ example: linked_resource
937
+ schema:
938
+ type: string
939
+ - name: filter
940
+ in: query
941
+ description: ''
942
+ example:
943
+ schema:
944
+ type: string
945
+ responses:
946
+ '200':
947
+ description: Records returned
948
+ content:
949
+ application/vnd.api+json:
950
+ examples:
951
+ Example:
952
+ value:
953
+ data:
954
+ - id: '1'
955
+ type: menu_item
956
+ attributes:
957
+ name: Quia ea unde minus sunt voluptatum iste repellendus.
958
+ subtitle:
959
+ destination:
960
+ new_window: false
961
+ item_type: Container
962
+ linked_resource_type: URL
963
+ code:
964
+ lft: 1
965
+ rgt: 16
966
+ depth: 0
967
+ created_at: '2021-08-23T21:28:23.403Z'
968
+ updated_at: '2021-08-23T21:28:23.479Z'
969
+ link:
970
+ is_container: true
971
+ is_root: true
972
+ is_child: false
973
+ is_leaf: false
974
+ relationships:
975
+ icon:
976
+ data:
977
+ menu:
978
+ data:
979
+ id: '1'
980
+ type: menu
981
+ parent:
982
+ data:
983
+ linked_resource:
984
+ data:
985
+ children:
986
+ data:
987
+ - id: '2'
988
+ type: menu_item
989
+ - id: '3'
990
+ type: menu_item
991
+ - id: '4'
992
+ type: menu_item
993
+ - id: '5'
994
+ type: menu_item
995
+ - id: '6'
996
+ type: menu_item
997
+ - id: '7'
998
+ type: menu_item
999
+ - id: '8'
1000
+ type: menu_item
1001
+ - id: '2'
1002
+ type: menu_item
1003
+ attributes:
1004
+ name: Link no. 1 To Somewhere
1005
+ subtitle:
1006
+ destination:
1007
+ new_window: false
1008
+ item_type: Link
1009
+ linked_resource_type: URL
1010
+ code:
1011
+ lft: 2
1012
+ rgt: 3
1013
+ depth: 1
1014
+ created_at: '2021-08-23T21:28:23.414Z'
1015
+ updated_at: '2021-08-23T21:28:23.416Z'
1016
+ link:
1017
+ is_container: false
1018
+ is_root: false
1019
+ is_child: true
1020
+ is_leaf: true
1021
+ relationships:
1022
+ icon:
1023
+ data:
1024
+ id: '1'
1025
+ type: icon
1026
+ menu:
1027
+ data:
1028
+ id: '1'
1029
+ type: menu
1030
+ parent:
1031
+ data:
1032
+ id: '1'
1033
+ type: menu_item
1034
+ linked_resource:
1035
+ data:
1036
+ children:
1037
+ data: []
1038
+ - id: '3'
1039
+ type: menu_item
1040
+ attributes:
1041
+ name: Link no. 2 To Somewhere
1042
+ subtitle:
1043
+ destination:
1044
+ new_window: false
1045
+ item_type: Link
1046
+ linked_resource_type: URL
1047
+ code:
1048
+ lft: 4
1049
+ rgt: 5
1050
+ depth: 1
1051
+ created_at: '2021-08-23T21:28:23.425Z'
1052
+ updated_at: '2021-08-23T21:28:23.426Z'
1053
+ link:
1054
+ is_container: false
1055
+ is_root: false
1056
+ is_child: true
1057
+ is_leaf: true
1058
+ relationships:
1059
+ icon:
1060
+ data:
1061
+ id: '2'
1062
+ type: icon
1063
+ menu:
1064
+ data:
1065
+ id: '1'
1066
+ type: menu
1067
+ parent:
1068
+ data:
1069
+ id: '1'
1070
+ type: menu_item
1071
+ linked_resource:
1072
+ data:
1073
+ children:
1074
+ data: []
1075
+ - id: '4'
1076
+ type: menu_item
1077
+ attributes:
1078
+ name: Link no. 3 To Somewhere
1079
+ subtitle:
1080
+ destination:
1081
+ new_window: false
1082
+ item_type: Link
1083
+ linked_resource_type: URL
1084
+ code:
1085
+ lft: 6
1086
+ rgt: 7
1087
+ depth: 1
1088
+ created_at: '2021-08-23T21:28:23.435Z'
1089
+ updated_at: '2021-08-23T21:28:23.436Z'
1090
+ link:
1091
+ is_container: false
1092
+ is_root: false
1093
+ is_child: true
1094
+ is_leaf: true
1095
+ relationships:
1096
+ icon:
1097
+ data:
1098
+ id: '3'
1099
+ type: icon
1100
+ menu:
1101
+ data:
1102
+ id: '1'
1103
+ type: menu
1104
+ parent:
1105
+ data:
1106
+ id: '1'
1107
+ type: menu_item
1108
+ linked_resource:
1109
+ data:
1110
+ children:
1111
+ data: []
1112
+ - id: '5'
1113
+ type: menu_item
1114
+ attributes:
1115
+ name: Link no. 4 To Somewhere
1116
+ subtitle:
1117
+ destination:
1118
+ new_window: false
1119
+ item_type: Link
1120
+ linked_resource_type: URL
1121
+ code:
1122
+ lft: 8
1123
+ rgt: 9
1124
+ depth: 1
1125
+ created_at: '2021-08-23T21:28:23.444Z'
1126
+ updated_at: '2021-08-23T21:28:23.446Z'
1127
+ link:
1128
+ is_container: false
1129
+ is_root: false
1130
+ is_child: true
1131
+ is_leaf: true
1132
+ relationships:
1133
+ icon:
1134
+ data:
1135
+ id: '4'
1136
+ type: icon
1137
+ menu:
1138
+ data:
1139
+ id: '1'
1140
+ type: menu
1141
+ parent:
1142
+ data:
1143
+ id: '1'
1144
+ type: menu_item
1145
+ linked_resource:
1146
+ data:
1147
+ children:
1148
+ data: []
1149
+ - id: '6'
1150
+ type: menu_item
1151
+ attributes:
1152
+ name: Link no. 5 To Somewhere
1153
+ subtitle:
1154
+ destination:
1155
+ new_window: false
1156
+ item_type: Link
1157
+ linked_resource_type: URL
1158
+ code:
1159
+ lft: 10
1160
+ rgt: 11
1161
+ depth: 1
1162
+ created_at: '2021-08-23T21:28:23.454Z'
1163
+ updated_at: '2021-08-23T21:28:23.456Z'
1164
+ link:
1165
+ is_container: false
1166
+ is_root: false
1167
+ is_child: true
1168
+ is_leaf: true
1169
+ relationships:
1170
+ icon:
1171
+ data:
1172
+ id: '5'
1173
+ type: icon
1174
+ menu:
1175
+ data:
1176
+ id: '1'
1177
+ type: menu
1178
+ parent:
1179
+ data:
1180
+ id: '1'
1181
+ type: menu_item
1182
+ linked_resource:
1183
+ data:
1184
+ children:
1185
+ data: []
1186
+ - id: '7'
1187
+ type: menu_item
1188
+ attributes:
1189
+ name: Link no. 6 To Somewhere
1190
+ subtitle:
1191
+ destination:
1192
+ new_window: false
1193
+ item_type: Link
1194
+ linked_resource_type: URL
1195
+ code:
1196
+ lft: 12
1197
+ rgt: 13
1198
+ depth: 1
1199
+ created_at: '2021-08-23T21:28:23.464Z'
1200
+ updated_at: '2021-08-23T21:28:23.465Z'
1201
+ link:
1202
+ is_container: false
1203
+ is_root: false
1204
+ is_child: true
1205
+ is_leaf: true
1206
+ relationships:
1207
+ icon:
1208
+ data:
1209
+ id: '6'
1210
+ type: icon
1211
+ menu:
1212
+ data:
1213
+ id: '1'
1214
+ type: menu
1215
+ parent:
1216
+ data:
1217
+ id: '1'
1218
+ type: menu_item
1219
+ linked_resource:
1220
+ data:
1221
+ children:
1222
+ data: []
1223
+ - id: '8'
1224
+ type: menu_item
1225
+ attributes:
1226
+ name: Link no. 7 To Somewhere
1227
+ subtitle:
1228
+ destination:
1229
+ new_window: false
1230
+ item_type: Link
1231
+ linked_resource_type: URL
1232
+ code:
1233
+ lft: 14
1234
+ rgt: 15
1235
+ depth: 1
1236
+ created_at: '2021-08-23T21:28:23.474Z'
1237
+ updated_at: '2021-08-23T21:28:23.475Z'
1238
+ link:
1239
+ is_container: false
1240
+ is_root: false
1241
+ is_child: true
1242
+ is_leaf: true
1243
+ relationships:
1244
+ icon:
1245
+ data:
1246
+ id: '7'
1247
+ type: icon
1248
+ menu:
1249
+ data:
1250
+ id: '1'
1251
+ type: menu
1252
+ parent:
1253
+ data:
1254
+ id: '1'
1255
+ type: menu_item
1256
+ linked_resource:
1257
+ data:
1258
+ children:
1259
+ data: []
1260
+ meta:
1261
+ count: 8
1262
+ total_count: 8
1263
+ total_pages: 1
1264
+ links:
1265
+ self: http://www.example.com/api/v2/platform/menu_items?page=1&per_page=&include=&filter=
1266
+ next: http://www.example.com/api/v2/platform/menu_items?include=&page=1&per_page=
1267
+ prev: http://www.example.com/api/v2/platform/menu_items?include=&page=1&per_page=
1268
+ last: http://www.example.com/api/v2/platform/menu_items?include=&page=1&per_page=
1269
+ first: http://www.example.com/api/v2/platform/menu_items?include=&page=1&per_page=
1270
+ '401':
1271
+ description: Authentication Failed
1272
+ content:
1273
+ application/vnd.api+json:
1274
+ examples:
1275
+ Example:
1276
+ value:
1277
+ error: The access token is invalid
1278
+ post:
1279
+ summary: Creates a MenuItem
1280
+ tags:
1281
+ - MenuItems
1282
+ security:
1283
+ - bearer_auth: []
1284
+ parameters:
1285
+ - name: include
1286
+ in: query
1287
+ description: 'Select which associated resources you would like to fetch, see:
1288
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1289
+ example: linked_resource
1290
+ schema:
1291
+ type: string
1292
+ responses:
1293
+ '201':
1294
+ description: record created
1295
+ content:
1296
+ application/vnd.api+json:
1297
+ examples:
1298
+ Example:
1299
+ value:
1300
+ data:
1301
+ id: '5'
1302
+ type: menu_item
1303
+ attributes:
1304
+ name: Link no. 18 To Somewhere
1305
+ subtitle:
1306
+ destination:
1307
+ new_window: false
1308
+ item_type: Link
1309
+ linked_resource_type: URL
1310
+ code:
1311
+ lft: 8
1312
+ rgt: 9
1313
+ depth: 1
1314
+ created_at: '2021-08-23T21:28:23.637Z'
1315
+ updated_at: '2021-08-23T21:28:23.639Z'
1316
+ link:
1317
+ is_container: false
1318
+ is_root: false
1319
+ is_child: true
1320
+ is_leaf: true
1321
+ relationships:
1322
+ icon:
1323
+ data:
1324
+ menu:
1325
+ data:
1326
+ id: '1'
1327
+ type: menu
1328
+ parent:
1329
+ data:
1330
+ id: '1'
1331
+ type: menu_item
1332
+ linked_resource:
1333
+ data:
1334
+ children:
1335
+ data: []
1336
+ '422':
1337
+ description: invalid request
1338
+ content:
1339
+ application/vnd.api+json:
1340
+ examples:
1341
+ Example:
1342
+ value:
1343
+ error: Name can't be blank, Menu can't be blank, and Item type
1344
+ is not included in the list
1345
+ errors:
1346
+ name:
1347
+ - can't be blank
1348
+ menu:
1349
+ - can't be blank
1350
+ item_type:
1351
+ - is not included in the list
1352
+ requestBody:
1353
+ content:
1354
+ application/json:
1355
+ schema:
1356
+ "$ref": "#/components/schemas/menu_items_params"
1357
+ "/api/v2/platform/menu_items/{id}":
1358
+ get:
1359
+ summary: Returns a MenuItem
1360
+ tags:
1361
+ - MenuItems
1362
+ security:
1363
+ - bearer_auth: []
1364
+ parameters:
1365
+ - name: id
1366
+ in: path
1367
+ required: true
1368
+ schema:
1369
+ type: string
1370
+ - name: include
1371
+ in: query
1372
+ description: 'Select which associated resources you would like to fetch, see:
1373
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1374
+ example: linked_resource
1375
+ schema:
1376
+ type: string
1377
+ responses:
1378
+ '200':
1379
+ description: Record found
1380
+ content:
1381
+ application/vnd.api+json:
1382
+ examples:
1383
+ Example:
1384
+ value:
1385
+ data:
1386
+ id: '5'
1387
+ type: menu_item
1388
+ attributes:
1389
+ name: Link no. 25 To Somewhere
1390
+ subtitle:
1391
+ destination:
1392
+ new_window: false
1393
+ item_type: Link
1394
+ linked_resource_type: URL
1395
+ code:
1396
+ lft: 8
1397
+ rgt: 9
1398
+ depth: 1
1399
+ created_at: '2021-08-23T21:28:23.746Z'
1400
+ updated_at: '2021-08-23T21:28:23.748Z'
1401
+ link:
1402
+ is_container: false
1403
+ is_root: false
1404
+ is_child: true
1405
+ is_leaf: true
1406
+ relationships:
1407
+ icon:
1408
+ data:
1409
+ id: '4'
1410
+ type: icon
1411
+ menu:
1412
+ data:
1413
+ id: '1'
1414
+ type: menu
1415
+ parent:
1416
+ data:
1417
+ id: '1'
1418
+ type: menu_item
1419
+ linked_resource:
1420
+ data:
1421
+ children:
1422
+ data: []
1423
+ '404':
1424
+ description: Record not found
1425
+ content:
1426
+ application/vnd.api+json:
1427
+ examples:
1428
+ Example:
1429
+ value:
1430
+ error: The resource you were looking for could not be found.
1431
+ '401':
1432
+ description: Authentication Failed
1433
+ content:
1434
+ application/vnd.api+json:
1435
+ examples:
1436
+ Example:
1437
+ value:
1438
+ error: The access token is invalid
1439
+ put:
1440
+ summary: Updates a MenuItem
1441
+ tags:
1442
+ - MenuItems
1443
+ security:
1444
+ - bearer_auth: []
1445
+ parameters:
1446
+ - name: id
1447
+ in: path
1448
+ required: true
1449
+ schema:
1450
+ type: string
1451
+ - name: include
1452
+ in: query
1453
+ description: 'Select which associated resources you would like to fetch, see:
1454
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1455
+ example: linked_resource
1456
+ schema:
1457
+ type: string
1458
+ responses:
1459
+ '200':
1460
+ description: record updated
1461
+ content:
1462
+ application/vnd.api+json:
1463
+ examples:
1464
+ Example:
1465
+ value:
1466
+ data:
1467
+ id: '5'
1468
+ type: menu_item
1469
+ attributes:
1470
+ name: Menu Item One
1471
+ subtitle:
1472
+ destination:
1473
+ new_window: false
1474
+ item_type: Link
1475
+ linked_resource_type: URL
1476
+ code:
1477
+ lft: 8
1478
+ rgt: 9
1479
+ depth: 1
1480
+ created_at: '2021-08-23T21:28:23.926Z'
1481
+ updated_at: '2021-08-23T21:28:23.937Z'
1482
+ link:
1483
+ is_container: false
1484
+ is_root: false
1485
+ is_child: true
1486
+ is_leaf: true
1487
+ relationships:
1488
+ icon:
1489
+ data:
1490
+ id: '4'
1491
+ type: icon
1492
+ menu:
1493
+ data:
1494
+ id: '1'
1495
+ type: menu
1496
+ parent:
1497
+ data:
1498
+ id: '1'
1499
+ type: menu_item
1500
+ linked_resource:
1501
+ data:
1502
+ children:
1503
+ data: []
1504
+ '422':
1505
+ description: invalid request
1506
+ content:
1507
+ application/vnd.api+json:
1508
+ examples:
1509
+ Example:
1510
+ value:
1511
+ error: Name can't be blank
1512
+ errors:
1513
+ name:
1514
+ - can't be blank
1515
+ '404':
1516
+ description: Record not found
1517
+ content:
1518
+ application/vnd.api+json:
1519
+ examples:
1520
+ Example:
1521
+ value:
1522
+ error: The resource you were looking for could not be found.
1523
+ '401':
1524
+ description: Authentication Failed
1525
+ content:
1526
+ application/vnd.api+json:
1527
+ examples:
1528
+ Example:
1529
+ value:
1530
+ error: The access token is invalid
1531
+ requestBody:
1532
+ content:
1533
+ application/json:
1534
+ schema:
1535
+ "$ref": "#/components/schemas/menu_items_params"
1536
+ delete:
1537
+ summary: Deletes a MenuItem
1538
+ tags:
1539
+ - MenuItems
1540
+ security:
1541
+ - bearer_auth: []
1542
+ parameters:
1543
+ - name: id
1544
+ in: path
1545
+ required: true
1546
+ schema:
1547
+ type: string
1548
+ responses:
1549
+ '204':
1550
+ description: Record deleted
1551
+ '404':
1552
+ description: Record not found
1553
+ content:
1554
+ application/vnd.api+json:
1555
+ examples:
1556
+ Example:
1557
+ value:
1558
+ error: The resource you were looking for could not be found.
1559
+ '401':
1560
+ description: Authentication Failed
1561
+ content:
1562
+ application/vnd.api+json:
1563
+ examples:
1564
+ Example:
1565
+ value:
1566
+ error: The access token is invalid
1567
+ "/api/v2/platform/menu_items/{id}/reposition":
1568
+ patch:
1569
+ summary: Reposition a Menu Item
1570
+ tags:
1571
+ - MenuItems
1572
+ security:
1573
+ - bearer_auth: []
1574
+ parameters:
1575
+ - name: id
1576
+ in: path
1577
+ required: true
1578
+ schema:
1579
+ type: string
1580
+ responses:
1581
+ '200':
1582
+ description: record updated
1583
+ content:
1584
+ application/vnd.api+json:
1585
+ examples:
1586
+ Example:
1587
+ value:
1588
+ data:
1589
+ id: '5'
1590
+ type: menu_item
1591
+ attributes:
1592
+ name: Link no. 62 To Somewhere
1593
+ subtitle:
1594
+ destination:
1595
+ new_window: false
1596
+ item_type: Link
1597
+ linked_resource_type: URL
1598
+ code:
1599
+ lft: 5
1600
+ rgt: 6
1601
+ depth: 2
1602
+ created_at: '2021-08-23T21:28:24.309Z'
1603
+ updated_at: '2021-08-23T21:28:24.321Z'
1604
+ link:
1605
+ is_container: false
1606
+ is_root: false
1607
+ is_child: true
1608
+ is_leaf: true
1609
+ relationships:
1610
+ icon:
1611
+ data:
1612
+ id: '4'
1613
+ type: icon
1614
+ menu:
1615
+ data:
1616
+ id: '1'
1617
+ type: menu
1618
+ parent:
1619
+ data:
1620
+ id: '3'
1621
+ type: menu_item
1622
+ linked_resource:
1623
+ data:
1624
+ children:
1625
+ data: []
1626
+ '404':
1627
+ description: Record not found
1628
+ content:
1629
+ application/vnd.api+json:
1630
+ examples:
1631
+ Example:
1632
+ value:
1633
+ error: The resource you were looking for could not be found.
1634
+ '401':
1635
+ description: Authentication Failed
1636
+ content:
1637
+ application/vnd.api+json:
1638
+ examples:
1639
+ Example:
1640
+ value:
1641
+ error: The access token is invalid
1642
+ requestBody:
1643
+ content:
1644
+ application/json:
1645
+ schema:
1646
+ "$ref": "#/components/schemas/menu_item_reposition_params"
1647
+ "/api/v2/platform/menus":
1648
+ get:
1649
+ summary: Returns a list of Menus
1650
+ tags:
1651
+ - Menus
1652
+ security:
1653
+ - bearer_auth: []
1654
+ parameters:
1655
+ - name: page
1656
+ in: query
1657
+ example: 1
1658
+ schema:
1659
+ type: integer
1660
+ - name: per_page
1661
+ in: query
1662
+ example: 50
1663
+ schema:
1664
+ type: integer
1665
+ - name: include
1666
+ in: query
1667
+ description: 'Select which associated resources you would like to fetch, see:
1668
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1669
+ example: menu_items
1670
+ schema:
1671
+ type: string
1672
+ - name: filter
1673
+ in: query
1674
+ description: ''
1675
+ example: location_eq=header
1676
+ schema:
1677
+ type: string
1678
+ responses:
1679
+ '200':
1680
+ description: Records returned
1681
+ content:
1682
+ application/vnd.api+json:
1683
+ examples:
1684
+ Example:
1685
+ value:
1686
+ data:
1687
+ - id: '1'
1688
+ type: menu
1689
+ attributes:
1690
+ name: Main Menu
1691
+ location: header
1692
+ locale: en
1693
+ created_at: '2021-08-23T21:28:24.436Z'
1694
+ updated_at: '2021-08-23T21:28:24.464Z'
1695
+ relationships:
1696
+ menu_items:
1697
+ data:
1698
+ - id: '1'
1699
+ type: menu_item
1700
+ - id: '3'
1701
+ type: menu_item
1702
+ - id: '4'
1703
+ type: menu_item
1704
+ - id: '2'
1705
+ type: menu
1706
+ attributes:
1707
+ name: Footer Menu
1708
+ location: footer
1709
+ locale: en
1710
+ created_at: '2021-08-23T21:28:24.440Z'
1711
+ updated_at: '2021-08-23T21:28:24.484Z'
1712
+ relationships:
1713
+ menu_items:
1714
+ data:
1715
+ - id: '2'
1716
+ type: menu_item
1717
+ - id: '5'
1718
+ type: menu_item
1719
+ - id: '6'
1720
+ type: menu_item
1721
+ meta:
1722
+ count: 2
1723
+ total_count: 2
1724
+ total_pages: 1
1725
+ links:
1726
+ self: http://www.example.com/api/v2/platform/menus?page=1&per_page=&include=&filter=
1727
+ next: http://www.example.com/api/v2/platform/menus?include=&page=1&per_page=
1728
+ prev: http://www.example.com/api/v2/platform/menus?include=&page=1&per_page=
1729
+ last: http://www.example.com/api/v2/platform/menus?include=&page=1&per_page=
1730
+ first: http://www.example.com/api/v2/platform/menus?include=&page=1&per_page=
1731
+ '401':
1732
+ description: Authentication Failed
1733
+ content:
1734
+ application/vnd.api+json:
1735
+ examples:
1736
+ Example:
1737
+ value:
1738
+ error: The access token is invalid
1739
+ post:
1740
+ summary: Creates a Menu
1741
+ tags:
1742
+ - Menus
1743
+ security:
1744
+ - bearer_auth: []
1745
+ parameters:
1746
+ - name: include
1747
+ in: query
1748
+ description: 'Select which associated resources you would like to fetch, see:
1749
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1750
+ example: menu_items
1751
+ schema:
1752
+ type: string
1753
+ responses:
1754
+ '201':
1755
+ description: record created
1756
+ content:
1757
+ application/vnd.api+json:
1758
+ examples:
1759
+ Example:
1760
+ value:
1761
+ data:
1762
+ id: '1'
1763
+ type: menu
1764
+ attributes:
1765
+ name: Main Menu
1766
+ location: header
1767
+ locale: en
1768
+ created_at: '2021-08-23T21:28:24.595Z'
1769
+ updated_at: '2021-08-23T21:28:24.598Z'
1770
+ relationships:
1771
+ menu_items:
1772
+ data:
1773
+ - id: '1'
1774
+ type: menu_item
1775
+ '422':
1776
+ description: invalid request
1777
+ content:
1778
+ application/vnd.api+json:
1779
+ examples:
1780
+ Example:
1781
+ value:
1782
+ error: Name can't be blank, Locale can't be blank, and Location
1783
+ is not included in the list
1784
+ errors:
1785
+ name:
1786
+ - can't be blank
1787
+ locale:
1788
+ - can't be blank
1789
+ location:
1790
+ - is not included in the list
1791
+ requestBody:
1792
+ content:
1793
+ application/json:
1794
+ schema:
1795
+ "$ref": "#/components/schemas/menus_params"
1796
+ "/api/v2/platform/menus/{id}":
1797
+ get:
1798
+ summary: Returns a Menu
1799
+ tags:
1800
+ - Menus
1801
+ security:
1802
+ - bearer_auth: []
1803
+ parameters:
1804
+ - name: id
1805
+ in: path
1806
+ required: true
1807
+ schema:
1808
+ type: string
1809
+ - name: include
1810
+ in: query
1811
+ description: 'Select which associated resources you would like to fetch, see:
1812
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1813
+ example: menu_items
1814
+ schema:
1815
+ type: string
1816
+ responses:
1817
+ '200':
1818
+ description: Record found
1819
+ content:
1820
+ application/vnd.api+json:
1821
+ examples:
1822
+ Example:
1823
+ value:
1824
+ data:
1825
+ id: '1'
1826
+ type: menu
1827
+ attributes:
1828
+ name: Main Menu
1829
+ location: header
1830
+ locale: en
1831
+ created_at: '2021-08-23T21:28:24.622Z'
1832
+ updated_at: '2021-08-23T21:28:24.625Z'
1833
+ relationships:
1834
+ menu_items:
1835
+ data:
1836
+ - id: '1'
1837
+ type: menu_item
1838
+ '404':
1839
+ description: Record not found
1840
+ content:
1841
+ application/vnd.api+json:
1842
+ examples:
1843
+ Example:
1844
+ value:
1845
+ error: The resource you were looking for could not be found.
1846
+ '401':
1847
+ description: Authentication Failed
1848
+ content:
1849
+ application/vnd.api+json:
1850
+ examples:
1851
+ Example:
1852
+ value:
1853
+ error: The access token is invalid
1854
+ put:
1855
+ summary: Updates a Menu
1856
+ tags:
1857
+ - Menus
1858
+ security:
1859
+ - bearer_auth: []
1860
+ parameters:
1861
+ - name: id
1862
+ in: path
1863
+ required: true
1864
+ schema:
1865
+ type: string
1866
+ - name: include
1867
+ in: query
1868
+ description: 'Select which associated resources you would like to fetch, see:
1869
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1870
+ example: menu_items
1871
+ schema:
1872
+ type: string
1873
+ responses:
1874
+ '200':
1875
+ description: record updated
1876
+ content:
1877
+ application/vnd.api+json:
1878
+ examples:
1879
+ Example:
1880
+ value:
1881
+ data:
1882
+ id: '1'
1883
+ type: menu
1884
+ attributes:
1885
+ name: Main Menu
1886
+ location: header
1887
+ locale: en
1888
+ created_at: '2021-08-23T21:28:24.664Z'
1889
+ updated_at: '2021-08-23T21:28:24.667Z'
1890
+ relationships:
1891
+ menu_items:
1892
+ data:
1893
+ - id: '1'
1894
+ type: menu_item
1895
+ '422':
1896
+ description: invalid request
1897
+ content:
1898
+ application/vnd.api+json:
1899
+ examples:
1900
+ Example:
1901
+ value:
1902
+ error: Name can't be blank, Locale can't be blank, and Location
1903
+ is not included in the list
1904
+ errors:
1905
+ name:
1906
+ - can't be blank
1907
+ locale:
1908
+ - can't be blank
1909
+ location:
1910
+ - is not included in the list
1911
+ '404':
1912
+ description: Record not found
1913
+ content:
1914
+ application/vnd.api+json:
1915
+ examples:
1916
+ Example:
1917
+ value:
1918
+ error: The resource you were looking for could not be found.
1919
+ '401':
1920
+ description: Authentication Failed
1921
+ content:
1922
+ application/vnd.api+json:
1923
+ examples:
1924
+ Example:
1925
+ value:
1926
+ error: The access token is invalid
1927
+ requestBody:
1928
+ content:
1929
+ application/json:
1930
+ schema:
1931
+ "$ref": "#/components/schemas/menus_params"
1932
+ delete:
1933
+ summary: Deletes a Menu
1934
+ tags:
1935
+ - Menus
1936
+ security:
1937
+ - bearer_auth: []
1938
+ parameters:
1939
+ - name: id
1940
+ in: path
1941
+ required: true
1942
+ schema:
1943
+ type: string
1944
+ responses:
1945
+ '204':
1946
+ description: Record deleted
1947
+ '404':
1948
+ description: Record not found
1949
+ content:
1950
+ application/vnd.api+json:
1951
+ examples:
1952
+ Example:
1953
+ value:
1954
+ error: The resource you were looking for could not be found.
1955
+ '401':
1956
+ description: Authentication Failed
1957
+ content:
1958
+ application/vnd.api+json:
1959
+ examples:
1960
+ Example:
1961
+ value:
1962
+ error: The access token is invalid
1963
+ "/api/v2/platform/option_types":
1964
+ get:
1965
+ summary: Returns a list of OptionTypes
1966
+ tags:
1967
+ - OptionTypes
1968
+ security:
1969
+ - bearer_auth: []
1970
+ parameters:
1971
+ - name: page
1972
+ in: query
1973
+ example: 1
1974
+ schema:
1975
+ type: integer
1976
+ - name: per_page
1977
+ in: query
1978
+ example: 50
1979
+ schema:
1980
+ type: integer
1981
+ - name: include
1982
+ in: query
1983
+ description: 'Select which associated resources you would like to fetch, see:
1984
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1985
+ example: ''
1986
+ schema:
1987
+ type: string
1988
+ - name: filter
1989
+ in: query
1990
+ description: ''
1991
+ example: option_type_id_eq=1&name_cont=Size
1992
+ schema:
1993
+ type: string
1994
+ responses:
1995
+ '200':
1996
+ description: Records returned
1997
+ content:
1998
+ application/vnd.api+json:
1999
+ examples:
2000
+ Example:
2001
+ value:
2002
+ data:
2003
+ - id: '1'
2004
+ type: option_type
2005
+ attributes:
2006
+ name: foo-size-1
2007
+ presentation: Size
2008
+ position: 1
2009
+ created_at: '2021-08-23T21:28:24.774Z'
2010
+ updated_at: '2021-08-23T21:28:24.774Z'
2011
+ filterable: true
2012
+ relationships:
2013
+ option_values:
2014
+ data: []
2015
+ - id: '2'
2016
+ type: option_type
2017
+ attributes:
2018
+ name: foo-size-2
2019
+ presentation: Size
2020
+ position: 2
2021
+ created_at: '2021-08-23T21:28:24.775Z'
2022
+ updated_at: '2021-08-23T21:28:24.775Z'
2023
+ filterable: true
2024
+ relationships:
2025
+ option_values:
2026
+ data: []
2027
+ meta:
2028
+ count: 2
2029
+ total_count: 2
2030
+ total_pages: 1
2031
+ links:
2032
+ self: http://www.example.com/api/v2/platform/option_types?page=1&per_page=&include=&filter=
2033
+ next: http://www.example.com/api/v2/platform/option_types?include=&page=1&per_page=
2034
+ prev: http://www.example.com/api/v2/platform/option_types?include=&page=1&per_page=
2035
+ last: http://www.example.com/api/v2/platform/option_types?include=&page=1&per_page=
2036
+ first: http://www.example.com/api/v2/platform/option_types?include=&page=1&per_page=
2037
+ '401':
2038
+ description: Authentication Failed
2039
+ content:
2040
+ application/vnd.api+json:
2041
+ examples:
2042
+ Example:
2043
+ value:
2044
+ error: The access token is invalid
2045
+ post:
2046
+ summary: Creates an OptionType
2047
+ tags:
2048
+ - OptionTypes
2049
+ security:
2050
+ - bearer_auth: []
2051
+ parameters:
2052
+ - name: include
2053
+ in: query
2054
+ description: 'Select which associated resources you would like to fetch, see:
2055
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2056
+ example: ''
2057
+ schema:
2058
+ type: string
2059
+ responses:
2060
+ '201':
2061
+ description: record created
2062
+ content:
2063
+ application/vnd.api+json:
2064
+ examples:
2065
+ Example:
2066
+ value:
2067
+ data:
2068
+ id: '1'
2069
+ type: option_type
2070
+ attributes:
2071
+ name: foo-size-5
2072
+ presentation: Size
2073
+ position: 1
2074
+ created_at: '2021-08-23T21:28:24.807Z'
2075
+ updated_at: '2021-08-23T21:28:24.807Z'
2076
+ filterable: true
2077
+ relationships:
2078
+ option_values:
2079
+ data: []
2080
+ '422':
2081
+ description: invalid request
2082
+ content:
2083
+ application/vnd.api+json:
2084
+ examples:
2085
+ Example:
2086
+ value:
2087
+ error: Name can't be blank and Presentation can't be blank
2088
+ errors:
2089
+ name:
2090
+ - can't be blank
2091
+ presentation:
2092
+ - can't be blank
2093
+ requestBody:
2094
+ content:
2095
+ application/json:
2096
+ schema:
2097
+ "$ref": "#/components/schemas/option_types_params"
2098
+ "/api/v2/platform/option_types/{id}":
2099
+ get:
2100
+ summary: Returns an OptionType
2101
+ tags:
2102
+ - OptionTypes
2103
+ security:
2104
+ - bearer_auth: []
2105
+ parameters:
2106
+ - name: id
2107
+ in: path
2108
+ required: true
2109
+ schema:
2110
+ type: string
2111
+ - name: include
2112
+ in: query
2113
+ description: 'Select which associated resources you would like to fetch, see:
2114
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2115
+ example: ''
2116
+ schema:
2117
+ type: string
2118
+ responses:
2119
+ '200':
2120
+ description: Record found
2121
+ content:
2122
+ application/vnd.api+json:
2123
+ examples:
2124
+ Example:
2125
+ value:
2126
+ data:
2127
+ id: '1'
2128
+ type: option_type
2129
+ attributes:
2130
+ name: foo-size-6
2131
+ presentation: Size
2132
+ position: 1
2133
+ created_at: '2021-08-23T21:28:24.829Z'
2134
+ updated_at: '2021-08-23T21:28:24.829Z'
2135
+ filterable: true
2136
+ relationships:
2137
+ option_values:
2138
+ data: []
2139
+ '404':
2140
+ description: Record not found
2141
+ content:
2142
+ application/vnd.api+json:
2143
+ examples:
2144
+ Example:
2145
+ value:
2146
+ error: The resource you were looking for could not be found.
2147
+ '401':
2148
+ description: Authentication Failed
2149
+ content:
2150
+ application/vnd.api+json:
2151
+ examples:
2152
+ Example:
2153
+ value:
2154
+ error: The access token is invalid
2155
+ put:
2156
+ summary: Updates an OptionType
2157
+ tags:
2158
+ - OptionTypes
2159
+ security:
2160
+ - bearer_auth: []
2161
+ parameters:
2162
+ - name: id
2163
+ in: path
2164
+ required: true
2165
+ schema:
2166
+ type: string
2167
+ - name: include
2168
+ in: query
2169
+ description: 'Select which associated resources you would like to fetch, see:
2170
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2171
+ example: ''
2172
+ schema:
2173
+ type: string
2174
+ responses:
2175
+ '200':
2176
+ description: record updated
2177
+ content:
2178
+ application/vnd.api+json:
2179
+ examples:
2180
+ Example:
2181
+ value:
2182
+ data:
2183
+ id: '1'
2184
+ type: option_type
2185
+ attributes:
2186
+ name: Size-X
2187
+ presentation: Size
2188
+ position: 1
2189
+ created_at: '2021-08-23T21:28:24.867Z'
2190
+ updated_at: '2021-08-23T21:28:24.871Z'
2191
+ filterable: true
2192
+ relationships:
2193
+ option_values:
2194
+ data: []
2195
+ '422':
2196
+ description: invalid request
2197
+ content:
2198
+ application/vnd.api+json:
2199
+ examples:
2200
+ Example:
2201
+ value:
2202
+ error: Name can't be blank
2203
+ errors:
2204
+ name:
2205
+ - can't be blank
2206
+ '404':
2207
+ description: Record not found
2208
+ content:
2209
+ application/vnd.api+json:
2210
+ examples:
2211
+ Example:
2212
+ value:
2213
+ error: The resource you were looking for could not be found.
2214
+ '401':
2215
+ description: Authentication Failed
2216
+ content:
2217
+ application/vnd.api+json:
2218
+ examples:
2219
+ Example:
2220
+ value:
2221
+ error: The access token is invalid
2222
+ requestBody:
2223
+ content:
2224
+ application/json:
2225
+ schema:
2226
+ "$ref": "#/components/schemas/option_types_params"
2227
+ delete:
2228
+ summary: Deletes an OptionType
2229
+ tags:
2230
+ - OptionTypes
2231
+ security:
2232
+ - bearer_auth: []
2233
+ parameters:
2234
+ - name: id
2235
+ in: path
2236
+ required: true
2237
+ schema:
2238
+ type: string
2239
+ responses:
2240
+ '204':
2241
+ description: Record deleted
2242
+ '404':
2243
+ description: Record not found
2244
+ content:
2245
+ application/vnd.api+json:
2246
+ examples:
2247
+ Example:
2248
+ value:
2249
+ error: The resource you were looking for could not be found.
2250
+ '401':
2251
+ description: Authentication Failed
2252
+ content:
2253
+ application/vnd.api+json:
2254
+ examples:
2255
+ Example:
2256
+ value:
2257
+ error: The access token is invalid
2258
+ "/api/v2/platform/option_values":
2259
+ get:
2260
+ summary: Returns a list of OptionValues
2261
+ tags:
2262
+ - OptionValues
2263
+ security:
2264
+ - bearer_auth: []
2265
+ parameters:
2266
+ - name: page
2267
+ in: query
2268
+ example: 1
2269
+ schema:
2270
+ type: integer
2271
+ - name: per_page
2272
+ in: query
2273
+ example: 50
2274
+ schema:
2275
+ type: integer
2276
+ - name: include
2277
+ in: query
2278
+ description: 'Select which associated resources you would like to fetch, see:
2279
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2280
+ example: option_type
2281
+ schema:
2282
+ type: string
2283
+ - name: filter
2284
+ in: query
2285
+ description: ''
2286
+ example: option_type_id_eq=1&name_cont=M
2287
+ schema:
2288
+ type: string
2289
+ responses:
2290
+ '200':
2291
+ description: Records returned
2292
+ content:
2293
+ application/vnd.api+json:
2294
+ examples:
2295
+ Example:
2296
+ value:
2297
+ data:
2298
+ - id: '1'
2299
+ type: option_value
2300
+ attributes:
2301
+ position: 1
2302
+ name: Size-1
2303
+ presentation: S
2304
+ created_at: '2021-08-23T21:28:24.950Z'
2305
+ updated_at: '2021-08-23T21:28:24.950Z'
2306
+ relationships:
2307
+ option_type:
2308
+ data:
2309
+ id: '1'
2310
+ type: option_type
2311
+ - id: '2'
2312
+ type: option_value
2313
+ attributes:
2314
+ position: 1
2315
+ name: Size-2
2316
+ presentation: S
2317
+ created_at: '2021-08-23T21:28:24.952Z'
2318
+ updated_at: '2021-08-23T21:28:24.952Z'
2319
+ relationships:
2320
+ option_type:
2321
+ data:
2322
+ id: '2'
2323
+ type: option_type
2324
+ meta:
2325
+ count: 2
2326
+ total_count: 2
2327
+ total_pages: 1
2328
+ links:
2329
+ self: http://www.example.com/api/v2/platform/option_values?page=1&per_page=&include=&filter=
2330
+ next: http://www.example.com/api/v2/platform/option_values?include=&page=1&per_page=
2331
+ prev: http://www.example.com/api/v2/platform/option_values?include=&page=1&per_page=
2332
+ last: http://www.example.com/api/v2/platform/option_values?include=&page=1&per_page=
2333
+ first: http://www.example.com/api/v2/platform/option_values?include=&page=1&per_page=
2334
+ '401':
2335
+ description: Authentication Failed
2336
+ content:
2337
+ application/vnd.api+json:
2338
+ examples:
2339
+ Example:
2340
+ value:
2341
+ error: The access token is invalid
2342
+ post:
2343
+ summary: Creates an OptionValue
2344
+ tags:
2345
+ - OptionValues
2346
+ security:
2347
+ - bearer_auth: []
2348
+ parameters:
2349
+ - name: include
2350
+ in: query
2351
+ description: 'Select which associated resources you would like to fetch, see:
2352
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2353
+ example: option_type
2354
+ schema:
2355
+ type: string
2356
+ responses:
2357
+ '201':
2358
+ description: record created
2359
+ content:
2360
+ application/vnd.api+json:
2361
+ examples:
2362
+ Example:
2363
+ value:
2364
+ data:
2365
+ id: '1'
2366
+ type: option_value
2367
+ attributes:
2368
+ position: 1
2369
+ name: Size-5
2370
+ presentation: S
2371
+ created_at: '2021-08-23T21:28:24.988Z'
2372
+ updated_at: '2021-08-23T21:28:24.988Z'
2373
+ relationships:
2374
+ option_type:
2375
+ data:
2376
+ '422':
2377
+ description: invalid request
2378
+ content:
2379
+ application/vnd.api+json:
2380
+ examples:
2381
+ Example:
2382
+ value:
2383
+ error: Name can't be blank and Presentation can't be blank
2384
+ errors:
2385
+ name:
2386
+ - can't be blank
2387
+ presentation:
2388
+ - can't be blank
2389
+ requestBody:
2390
+ content:
2391
+ application/json:
2392
+ schema:
2393
+ "$ref": "#/components/schemas/option_values_params"
2394
+ "/api/v2/platform/option_values/{id}":
2395
+ get:
2396
+ summary: Returns an OptionValue
2397
+ tags:
2398
+ - OptionValues
2399
+ security:
2400
+ - bearer_auth: []
2401
+ parameters:
2402
+ - name: id
2403
+ in: path
2404
+ required: true
2405
+ schema:
2406
+ type: string
2407
+ - name: include
2408
+ in: query
2409
+ description: 'Select which associated resources you would like to fetch, see:
2410
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2411
+ example: option_type
2412
+ schema:
2413
+ type: string
2414
+ responses:
2415
+ '200':
2416
+ description: Record found
2417
+ content:
2418
+ application/vnd.api+json:
2419
+ examples:
2420
+ Example:
2421
+ value:
2422
+ data:
2423
+ id: '1'
2424
+ type: option_value
2425
+ attributes:
2426
+ position: 1
2427
+ name: Size-6
2428
+ presentation: S
2429
+ created_at: '2021-08-23T21:28:25.015Z'
2430
+ updated_at: '2021-08-23T21:28:25.015Z'
2431
+ relationships:
2432
+ option_type:
2433
+ data:
2434
+ id: '1'
2435
+ type: option_type
2436
+ '404':
2437
+ description: Record not found
2438
+ content:
2439
+ application/vnd.api+json:
2440
+ examples:
2441
+ Example:
2442
+ value:
2443
+ error: The resource you were looking for could not be found.
2444
+ '401':
2445
+ description: Authentication Failed
2446
+ content:
2447
+ application/vnd.api+json:
2448
+ examples:
2449
+ Example:
2450
+ value:
2451
+ error: The access token is invalid
2452
+ put:
2453
+ summary: Updates an OptionValue
2454
+ tags:
2455
+ - OptionValues
2456
+ security:
2457
+ - bearer_auth: []
2458
+ parameters:
2459
+ - name: id
2460
+ in: path
2461
+ required: true
2462
+ schema:
2463
+ type: string
2464
+ - name: include
2465
+ in: query
2466
+ description: 'Select which associated resources you would like to fetch, see:
2467
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2468
+ example: option_type
2469
+ schema:
2470
+ type: string
2471
+ responses:
2472
+ '200':
2473
+ description: record updated
2474
+ content:
2475
+ application/vnd.api+json:
2476
+ examples:
2477
+ Example:
2478
+ value:
2479
+ data:
2480
+ id: '1'
2481
+ type: option_value
2482
+ attributes:
2483
+ position: 1
2484
+ name: M
2485
+ presentation: S
2486
+ created_at: '2021-08-23T21:28:25.052Z'
2487
+ updated_at: '2021-08-23T21:28:25.056Z'
2488
+ relationships:
2489
+ option_type:
2490
+ data:
2491
+ id: '1'
2492
+ type: option_type
2493
+ '422':
2494
+ description: invalid request
2495
+ content:
2496
+ application/vnd.api+json:
2497
+ examples:
2498
+ Example:
2499
+ value:
2500
+ error: Name can't be blank
2501
+ errors:
2502
+ name:
2503
+ - can't be blank
2504
+ '404':
2505
+ description: Record not found
2506
+ content:
2507
+ application/vnd.api+json:
2508
+ examples:
2509
+ Example:
2510
+ value:
2511
+ error: The resource you were looking for could not be found.
2512
+ '401':
2513
+ description: Authentication Failed
2514
+ content:
2515
+ application/vnd.api+json:
2516
+ examples:
2517
+ Example:
2518
+ value:
2519
+ error: The access token is invalid
2520
+ requestBody:
2521
+ content:
2522
+ application/json:
2523
+ schema:
2524
+ "$ref": "#/components/schemas/option_values_params"
2525
+ delete:
2526
+ summary: Deletes an OptionValue
2527
+ tags:
2528
+ - OptionValues
2529
+ security:
2530
+ - bearer_auth: []
2531
+ parameters:
2532
+ - name: id
2533
+ in: path
2534
+ required: true
2535
+ schema:
2536
+ type: string
2537
+ responses:
2538
+ '204':
2539
+ description: Record deleted
2540
+ '404':
2541
+ description: Record not found
2542
+ content:
2543
+ application/vnd.api+json:
2544
+ examples:
2545
+ Example:
2546
+ value:
2547
+ error: The resource you were looking for could not be found.
2548
+ '401':
2549
+ description: Authentication Failed
2550
+ content:
2551
+ application/vnd.api+json:
2552
+ examples:
2553
+ Example:
2554
+ value:
2555
+ error: The access token is invalid
2556
+ "/api/v2/platform/taxons":
2557
+ get:
2558
+ summary: Returns a list of Taxons
2559
+ tags:
2560
+ - Taxons
2561
+ security:
2562
+ - bearer_auth: []
2563
+ parameters:
2564
+ - name: page
2565
+ in: query
2566
+ example: 1
2567
+ schema:
2568
+ type: integer
2569
+ - name: per_page
2570
+ in: query
2571
+ example: 50
2572
+ schema:
2573
+ type: integer
2574
+ - name: include
2575
+ in: query
2576
+ description: 'Select which associated resources you would like to fetch, see:
2577
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2578
+ example: taxonomy,parent,children
2579
+ schema:
2580
+ type: string
2581
+ - name: filter
2582
+ in: query
2583
+ description: ''
2584
+ example: taxonomy_id_eq=1&name_cont=Shirts
2585
+ schema:
2586
+ type: string
2587
+ responses:
2588
+ '200':
2589
+ description: Records returned
2590
+ content:
2591
+ application/vnd.api+json:
2592
+ examples:
2593
+ Example:
2594
+ value:
2595
+ data:
2596
+ - id: '1'
2597
+ type: taxon
2598
+ attributes:
2599
+ position: 0
2600
+ name: taxonomy_16
2601
+ permalink: taxonomy-16
2602
+ lft: 1
2603
+ rgt: 6
2604
+ description:
2605
+ created_at: '2021-08-23T21:28:25.145Z'
2606
+ updated_at: '2021-08-23T21:28:25.172Z'
2607
+ meta_title:
2608
+ meta_description:
2609
+ meta_keywords:
2610
+ depth: 0
2611
+ pretty_name: taxonomy_16
2612
+ seo_title: taxonomy_16
2613
+ is_root: true
2614
+ is_child: false
2615
+ is_leaf: false
2616
+ relationships:
2617
+ parent:
2618
+ data:
2619
+ taxonomy:
2620
+ data:
2621
+ id: '1'
2622
+ type: taxonomy
2623
+ children:
2624
+ data:
2625
+ - id: '2'
2626
+ type: taxon
2627
+ - id: '3'
2628
+ type: taxon
2629
+ image:
2630
+ data:
2631
+ - id: '2'
2632
+ type: taxon
2633
+ attributes:
2634
+ position: 0
2635
+ name: taxon_16
2636
+ permalink: taxonomy-16/taxon-16
2637
+ lft: 2
2638
+ rgt: 3
2639
+ description:
2640
+ created_at: '2021-08-23T21:28:25.156Z'
2641
+ updated_at: '2021-08-23T21:28:25.157Z'
2642
+ meta_title:
2643
+ meta_description:
2644
+ meta_keywords:
2645
+ depth: 1
2646
+ pretty_name: taxonomy_16 -> taxon_16
2647
+ seo_title: taxon_16
2648
+ is_root: false
2649
+ is_child: true
2650
+ is_leaf: true
2651
+ relationships:
2652
+ parent:
2653
+ data:
2654
+ id: '1'
2655
+ type: taxon
2656
+ taxonomy:
2657
+ data:
2658
+ id: '1'
2659
+ type: taxonomy
2660
+ children:
2661
+ data: []
2662
+ image:
2663
+ data:
2664
+ id: '1'
2665
+ type: taxon_image
2666
+ - id: '3'
2667
+ type: taxon
2668
+ attributes:
2669
+ position: 0
2670
+ name: taxon_17
2671
+ permalink: taxonomy-16/taxon-17
2672
+ lft: 4
2673
+ rgt: 5
2674
+ description:
2675
+ created_at: '2021-08-23T21:28:25.167Z'
2676
+ updated_at: '2021-08-23T21:28:25.168Z'
2677
+ meta_title:
2678
+ meta_description:
2679
+ meta_keywords:
2680
+ depth: 1
2681
+ pretty_name: taxonomy_16 -> taxon_17
2682
+ seo_title: taxon_17
2683
+ is_root: false
2684
+ is_child: true
2685
+ is_leaf: true
2686
+ relationships:
2687
+ parent:
2688
+ data:
2689
+ id: '1'
2690
+ type: taxon
2691
+ taxonomy:
2692
+ data:
2693
+ id: '1'
2694
+ type: taxonomy
2695
+ children:
2696
+ data: []
2697
+ image:
2698
+ data:
2699
+ id: '2'
2700
+ type: taxon_image
2701
+ meta:
2702
+ count: 3
2703
+ total_count: 3
2704
+ total_pages: 1
2705
+ links:
2706
+ self: http://www.example.com/api/v2/platform/taxons?page=1&per_page=&include=&filter=
2707
+ next: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
2708
+ prev: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
2709
+ last: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
2710
+ first: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
2711
+ '401':
2712
+ description: Authentication Failed
2713
+ content:
2714
+ application/vnd.api+json:
2715
+ examples:
2716
+ Example:
2717
+ value:
2718
+ error: The access token is invalid
2719
+ post:
2720
+ summary: Creates a Taxon
2721
+ tags:
2722
+ - Taxons
2723
+ security:
2724
+ - bearer_auth: []
2725
+ parameters:
2726
+ - name: include
2727
+ in: query
2728
+ description: 'Select which associated resources you would like to fetch, see:
2729
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2730
+ example: taxonomy,parent,children
2731
+ schema:
2732
+ type: string
2733
+ responses:
2734
+ '201':
2735
+ description: record created
2736
+ content:
2737
+ application/vnd.api+json:
2738
+ examples:
2739
+ Example:
2740
+ value:
2741
+ data:
2742
+ id: '2'
2743
+ type: taxon
2744
+ attributes:
2745
+ position: 0
2746
+ name: taxon_20
2747
+ permalink: taxonomy-18/taxon-20
2748
+ lft: 2
2749
+ rgt: 3
2750
+ description:
2751
+ created_at: '2021-08-23T21:28:25.251Z'
2752
+ updated_at: '2021-08-23T21:28:25.254Z'
2753
+ meta_title:
2754
+ meta_description:
2755
+ meta_keywords:
2756
+ depth: 1
2757
+ pretty_name: taxonomy_18 -> taxon_20
2758
+ seo_title: taxon_20
2759
+ is_root: false
2760
+ is_child: true
2761
+ is_leaf: true
2762
+ relationships:
2763
+ parent:
2764
+ data:
2765
+ id: '1'
2766
+ type: taxon
2767
+ taxonomy:
2768
+ data:
2769
+ id: '1'
2770
+ type: taxonomy
2771
+ children:
2772
+ data: []
2773
+ image:
2774
+ data:
2775
+ '422':
2776
+ description: invalid request
2777
+ content:
2778
+ application/vnd.api+json:
2779
+ examples:
2780
+ Example:
2781
+ value:
2782
+ error: Name can't be blank and Taxonomy can't be blank
2783
+ errors:
2784
+ name:
2785
+ - can't be blank
2786
+ taxonomy:
2787
+ - can't be blank
2788
+ requestBody:
2789
+ content:
2790
+ application/json:
2791
+ schema:
2792
+ "$ref": "#/components/schemas/taxons_params"
2793
+ "/api/v2/platform/taxons/{id}":
2794
+ get:
2795
+ summary: Returns a Taxon
2796
+ tags:
2797
+ - Taxons
2798
+ security:
2799
+ - bearer_auth: []
2800
+ parameters:
2801
+ - name: id
2802
+ in: path
2803
+ required: true
2804
+ schema:
2805
+ type: string
2806
+ - name: include
2807
+ in: query
2808
+ description: 'Select which associated resources you would like to fetch, see:
2809
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2810
+ example: taxonomy,parent,children
2811
+ schema:
2812
+ type: string
2813
+ responses:
2814
+ '200':
2815
+ description: Record found
2816
+ content:
2817
+ application/vnd.api+json:
2818
+ examples:
2819
+ Example:
2820
+ value:
2821
+ data:
2822
+ id: '2'
2823
+ type: taxon
2824
+ attributes:
2825
+ position: 0
2826
+ name: taxon_21
2827
+ permalink: taxonomy-19/taxon-21
2828
+ lft: 2
2829
+ rgt: 3
2830
+ description:
2831
+ created_at: '2021-08-23T21:28:25.291Z'
2832
+ updated_at: '2021-08-23T21:28:25.293Z'
2833
+ meta_title:
2834
+ meta_description:
2835
+ meta_keywords:
2836
+ depth: 1
2837
+ pretty_name: taxonomy_19 -> taxon_21
2838
+ seo_title: taxon_21
2839
+ is_root: false
2840
+ is_child: true
2841
+ is_leaf: true
2842
+ relationships:
2843
+ parent:
2844
+ data:
2845
+ id: '1'
2846
+ type: taxon
2847
+ taxonomy:
2848
+ data:
2849
+ id: '1'
2850
+ type: taxonomy
2851
+ children:
2852
+ data: []
2853
+ products:
2854
+ data: []
2855
+ image:
2856
+ data:
2857
+ id: '1'
2858
+ type: taxon_image
2859
+ '404':
2860
+ description: Record not found
2861
+ content:
2862
+ application/vnd.api+json:
2863
+ examples:
2864
+ Example:
2865
+ value:
2866
+ error: The resource you were looking for could not be found.
2867
+ '401':
2868
+ description: Authentication Failed
2869
+ content:
2870
+ application/vnd.api+json:
2871
+ examples:
2872
+ Example:
2873
+ value:
2874
+ error: The access token is invalid
2875
+ put:
2876
+ summary: Updates a Taxon
2877
+ tags:
2878
+ - Taxons
2879
+ security:
2880
+ - bearer_auth: []
2881
+ parameters:
2882
+ - name: id
2883
+ in: path
2884
+ required: true
2885
+ schema:
2886
+ type: string
2887
+ - name: include
2888
+ in: query
2889
+ description: 'Select which associated resources you would like to fetch, see:
2890
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
2891
+ example: taxonomy,parent,children
2892
+ schema:
2893
+ type: string
2894
+ responses:
2895
+ '200':
2896
+ description: record updated
2897
+ content:
2898
+ application/vnd.api+json:
2899
+ examples:
2900
+ Example:
2901
+ value:
2902
+ data:
2903
+ id: '2'
2904
+ type: taxon
2905
+ attributes:
2906
+ position: 0
2907
+ name: T-Shirts
2908
+ permalink: taxonomy-21/taxon-23
2909
+ lft: 2
2910
+ rgt: 3
2911
+ description:
2912
+ created_at: '2021-08-23T21:28:25.371Z'
2913
+ updated_at: '2021-08-23T21:28:25.383Z'
2914
+ meta_title:
2915
+ meta_description:
2916
+ meta_keywords:
2917
+ depth: 1
2918
+ pretty_name: taxonomy_21 -> T-Shirts
2919
+ seo_title: T-Shirts
2920
+ is_root: false
2921
+ is_child: true
2922
+ is_leaf: true
2923
+ relationships:
2924
+ parent:
2925
+ data:
2926
+ id: '1'
2927
+ type: taxon
2928
+ taxonomy:
2929
+ data:
2930
+ id: '1'
2931
+ type: taxonomy
2932
+ children:
2933
+ data: []
2934
+ image:
2935
+ data:
2936
+ id: '1'
2937
+ type: taxon_image
2938
+ '422':
2939
+ description: invalid request
2940
+ content:
2941
+ application/vnd.api+json:
2942
+ examples:
2943
+ Example:
2944
+ value:
2945
+ error: Name can't be blank
2946
+ errors:
2947
+ name:
2948
+ - can't be blank
2949
+ '404':
2950
+ description: Record not found
2951
+ content:
2952
+ application/vnd.api+json:
2953
+ examples:
2954
+ Example:
2955
+ value:
2956
+ error: The resource you were looking for could not be found.
2957
+ '401':
2958
+ description: Authentication Failed
2959
+ content:
2960
+ application/vnd.api+json:
2961
+ examples:
2962
+ Example:
2963
+ value:
2964
+ error: The access token is invalid
2965
+ requestBody:
2966
+ content:
2967
+ application/json:
2968
+ schema:
2969
+ "$ref": "#/components/schemas/taxons_params"
2970
+ delete:
2971
+ summary: Deletes a Taxon
2972
+ tags:
2973
+ - Taxons
2974
+ security:
2975
+ - bearer_auth: []
2976
+ parameters:
2977
+ - name: id
2978
+ in: path
2979
+ required: true
2980
+ schema:
2981
+ type: string
2982
+ responses:
2983
+ '204':
2984
+ description: Record deleted
2985
+ '404':
2986
+ description: Record not found
2987
+ content:
2988
+ application/vnd.api+json:
2989
+ examples:
2990
+ Example:
2991
+ value:
2992
+ error: The resource you were looking for could not be found.
2993
+ '401':
2994
+ description: Authentication Failed
2995
+ content:
2996
+ application/vnd.api+json:
2997
+ examples:
2998
+ Example:
2999
+ value:
3000
+ error: The access token is invalid
3001
+ "/api/v2/platform/users":
3002
+ get:
3003
+ summary: Returns a list of Users
3004
+ tags:
3005
+ - Users
3006
+ security:
3007
+ - bearer_auth: []
3008
+ parameters:
3009
+ - name: page
3010
+ in: query
3011
+ example: 1
3012
+ schema:
3013
+ type: integer
3014
+ - name: per_page
3015
+ in: query
3016
+ example: 50
3017
+ schema:
3018
+ type: integer
3019
+ - name: include
3020
+ in: query
3021
+ description: 'Select which associated resources you would like to fetch, see:
3022
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
3023
+ example: ship_address,bill_address
3024
+ schema:
3025
+ type: string
3026
+ - name: filter
3027
+ in: query
3028
+ description: ''
3029
+ example: user_id_eq=1&email_cont=spree@example.com
3030
+ schema:
3031
+ type: string
3032
+ responses:
3033
+ '200':
3034
+ description: Records returned
3035
+ content:
3036
+ application/vnd.api+json:
3037
+ examples:
3038
+ Example:
3039
+ value:
3040
+ data:
3041
+ - id: '1'
3042
+ type: user
3043
+ attributes:
3044
+ email: vernetta@huels.co.uk
3045
+ created_at: '2021-08-23T21:28:25.546Z'
3046
+ updated_at: '2021-08-23T21:28:25.546Z'
3047
+ average_order_value: []
3048
+ lifetime_value: []
3049
+ store_credits: []
3050
+ relationships:
3051
+ bill_address:
3052
+ data:
3053
+ ship_address:
3054
+ data:
3055
+ - id: '2'
3056
+ type: user
3057
+ attributes:
3058
+ email: pansy_hirthe@smitham.us
3059
+ created_at: '2021-08-23T21:28:25.549Z'
3060
+ updated_at: '2021-08-23T21:28:25.549Z'
3061
+ average_order_value: []
3062
+ lifetime_value: []
3063
+ store_credits: []
3064
+ relationships:
3065
+ bill_address:
3066
+ data:
3067
+ ship_address:
3068
+ data:
3069
+ - id: '3'
3070
+ type: user
3071
+ attributes:
3072
+ email: carmen.kerluke@kossschulist.com
3073
+ created_at: '2021-08-23T21:28:25.550Z'
3074
+ updated_at: '2021-08-23T21:28:25.550Z'
3075
+ average_order_value: []
3076
+ lifetime_value: []
3077
+ store_credits: []
3078
+ relationships:
3079
+ bill_address:
3080
+ data:
3081
+ ship_address:
3082
+ data:
3083
+ meta:
3084
+ count: 3
3085
+ total_count: 3
3086
+ total_pages: 1
3087
+ links:
3088
+ self: http://www.example.com/api/v2/platform/users?page=1&per_page=&include=&filter=
3089
+ next: http://www.example.com/api/v2/platform/users?include=&page=1&per_page=
3090
+ prev: http://www.example.com/api/v2/platform/users?include=&page=1&per_page=
3091
+ last: http://www.example.com/api/v2/platform/users?include=&page=1&per_page=
3092
+ first: http://www.example.com/api/v2/platform/users?include=&page=1&per_page=
3093
+ '401':
3094
+ description: Authentication Failed
3095
+ content:
3096
+ application/vnd.api+json:
3097
+ examples:
3098
+ Example:
3099
+ value:
3100
+ error: The access token is invalid
3101
+ post:
3102
+ summary: Creates an User
3103
+ tags:
3104
+ - Users
3105
+ security:
3106
+ - bearer_auth: []
3107
+ parameters:
3108
+ - name: include
3109
+ in: query
3110
+ description: 'Select which associated resources you would like to fetch, see:
3111
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
3112
+ example: ship_address,bill_address
3113
+ schema:
3114
+ type: string
3115
+ responses:
3116
+ '201':
3117
+ description: record created
3118
+ content:
3119
+ application/vnd.api+json:
3120
+ examples:
3121
+ Example:
3122
+ value:
3123
+ data:
3124
+ id: '2'
3125
+ type: user
3126
+ attributes:
3127
+ email: marx_feil@borer.info
3128
+ created_at: '2021-08-23T21:28:25.597Z'
3129
+ updated_at: '2021-08-23T21:28:25.597Z'
3130
+ average_order_value: []
3131
+ lifetime_value: []
3132
+ store_credits: []
3133
+ relationships:
3134
+ bill_address:
3135
+ data:
3136
+ ship_address:
3137
+ data:
3138
+ '422':
3139
+ description: invalid request
3140
+ content:
3141
+ application/vnd.api+json:
3142
+ examples:
3143
+ Example:
3144
+ value:
3145
+ error: Bill address belongs to other user
3146
+ errors:
3147
+ bill_address_id:
3148
+ - belongs to other user
3149
+ requestBody:
3150
+ content:
3151
+ application/json:
3152
+ schema:
3153
+ "$ref": "#/components/schemas/users_params"
3154
+ "/api/v2/platform/users/{id}":
3155
+ get:
3156
+ summary: Returns an User
3157
+ tags:
3158
+ - Users
3159
+ security:
3160
+ - bearer_auth: []
3161
+ parameters:
3162
+ - name: id
3163
+ in: path
3164
+ required: true
3165
+ schema:
3166
+ type: string
3167
+ - name: include
3168
+ in: query
3169
+ description: 'Select which associated resources you would like to fetch, see:
3170
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
3171
+ example: ship_address,bill_address
3172
+ schema:
3173
+ type: string
3174
+ responses:
3175
+ '200':
3176
+ description: Record found
3177
+ content:
3178
+ application/vnd.api+json:
3179
+ examples:
3180
+ Example:
3181
+ value:
3182
+ data:
3183
+ id: '2'
3184
+ type: user
3185
+ attributes:
3186
+ email: stefany@leannon.biz
3187
+ created_at: '2021-08-23T21:28:25.626Z'
3188
+ updated_at: '2021-08-23T21:28:25.626Z'
3189
+ average_order_value: []
3190
+ lifetime_value: []
3191
+ store_credits: []
3192
+ relationships:
3193
+ bill_address:
3194
+ data:
3195
+ ship_address:
3196
+ data:
3197
+ '404':
3198
+ description: Record not found
3199
+ content:
3200
+ application/vnd.api+json:
3201
+ examples:
3202
+ Example:
3203
+ value:
3204
+ error: The resource you were looking for could not be found.
3205
+ '401':
3206
+ description: Authentication Failed
3207
+ content:
3208
+ application/vnd.api+json:
3209
+ examples:
3210
+ Example:
3211
+ value:
3212
+ error: The access token is invalid
3213
+ put:
3214
+ summary: Updates an User
3215
+ tags:
3216
+ - Users
3217
+ security:
3218
+ - bearer_auth: []
3219
+ parameters:
3220
+ - name: id
3221
+ in: path
3222
+ required: true
3223
+ schema:
3224
+ type: string
3225
+ - name: include
3226
+ in: query
3227
+ description: 'Select which associated resources you would like to fetch, see:
3228
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
3229
+ example: ship_address,bill_address
3230
+ schema:
3231
+ type: string
3232
+ responses:
3233
+ '200':
3234
+ description: record updated
3235
+ content:
3236
+ application/vnd.api+json:
3237
+ examples:
3238
+ Example:
3239
+ value:
3240
+ data:
3241
+ id: '2'
3242
+ type: user
3243
+ attributes:
3244
+ email: john@example.com
3245
+ created_at: '2021-08-23T21:28:25.669Z'
3246
+ updated_at: '2021-08-23T21:28:25.673Z'
3247
+ average_order_value: []
3248
+ lifetime_value: []
3249
+ store_credits: []
3250
+ relationships:
3251
+ bill_address:
3252
+ data:
3253
+ ship_address:
3254
+ data:
3255
+ '422':
3256
+ description: invalid request
3257
+ content:
3258
+ application/vnd.api+json:
3259
+ examples:
3260
+ Example:
3261
+ value:
3262
+ error: Bill address belongs to other user
3263
+ errors:
3264
+ bill_address_id:
3265
+ - belongs to other user
3266
+ '404':
3267
+ description: Record not found
3268
+ content:
3269
+ application/vnd.api+json:
3270
+ examples:
3271
+ Example:
3272
+ value:
3273
+ error: The resource you were looking for could not be found.
3274
+ '401':
3275
+ description: Authentication Failed
3276
+ content:
3277
+ application/vnd.api+json:
3278
+ examples:
3279
+ Example:
3280
+ value:
3281
+ error: The access token is invalid
3282
+ requestBody:
3283
+ content:
3284
+ application/json:
3285
+ schema:
3286
+ "$ref": "#/components/schemas/users_params"
3287
+ delete:
3288
+ summary: Deletes an User
3289
+ tags:
3290
+ - Users
3291
+ security:
3292
+ - bearer_auth: []
3293
+ parameters:
3294
+ - name: id
3295
+ in: path
3296
+ required: true
3297
+ schema:
3298
+ type: string
3299
+ responses:
3300
+ '204':
3301
+ description: Record deleted
3302
+ '404':
3303
+ description: Record not found
3304
+ content:
3305
+ application/vnd.api+json:
3306
+ examples:
3307
+ Example:
3308
+ value:
3309
+ error: The resource you were looking for could not be found.
3310
+ '401':
3311
+ description: Authentication Failed
3312
+ content:
3313
+ application/vnd.api+json:
3314
+ examples:
3315
+ Example:
3316
+ value:
3317
+ error: The access token is invalid
3318
+ servers:
3319
+ - url: https://{defaultHost}
3320
+ variables:
3321
+ defaultHost:
3322
+ default: localhost:3000
3323
+ components:
3324
+ securitySchemes:
3325
+ bearer_auth:
3326
+ type: http
3327
+ scheme: bearer
3328
+ schemas:
3329
+ address_params:
3330
+ type: object
3331
+ properties:
3332
+ country_id:
3333
+ type: string
3334
+ state_id:
3335
+ type: string
3336
+ state_name:
3337
+ type: string
3338
+ address1:
3339
+ type: string
3340
+ city:
3341
+ type: string
3342
+ zipcode:
3343
+ type: string
3344
+ phone:
3345
+ type: string
3346
+ alternative_phone:
3347
+ type: string
3348
+ firstname:
3349
+ type: string
3350
+ lastname:
3351
+ type: string
3352
+ label:
3353
+ type: string
3354
+ company:
3355
+ type: string
3356
+ user_id:
3357
+ type: string
3358
+ classification_params:
3359
+ type: object
3360
+ properties:
3361
+ product_id:
3362
+ type: string
3363
+ taxon_id:
3364
+ type: string
3365
+ position:
3366
+ type: integer
3367
+ option_type_params:
3368
+ type: object
3369
+ properties:
3370
+ name:
3371
+ type: string
3372
+ presentation:
3373
+ type: string
3374
+ required:
3375
+ - name
3376
+ - presentation
3377
+ option_value_params:
3378
+ type: object
3379
+ properties:
3380
+ name:
3381
+ type: string
3382
+ presentation:
3383
+ type: string
3384
+ option_values_attributes:
3385
+ type: string
3386
+ required:
3387
+ - name
3388
+ - presentation
3389
+ product_params:
3390
+ type: object
3391
+ properties:
3392
+ name:
3393
+ type: string
3394
+ description:
3395
+ type: string
3396
+ available_on:
3397
+ type: string
3398
+ discontinue_on:
3399
+ type: string
3400
+ permalink:
3401
+ type: string
3402
+ meta_description:
3403
+ type: string
3404
+ meta_keywords:
3405
+ type: string
3406
+ price:
3407
+ type: string
3408
+ sku:
3409
+ type: string
3410
+ deleted_at:
3411
+ type: string
3412
+ prototype_id:
3413
+ type: string
3414
+ option_values_hash:
3415
+ type: string
3416
+ weight:
3417
+ type: string
3418
+ height:
3419
+ type: string
3420
+ width:
3421
+ type: string
3422
+ depth:
3423
+ type: string
3424
+ shipping_category_id:
3425
+ type: string
3426
+ tax_category_id:
3427
+ type: string
3428
+ cost_currency:
3429
+ type: string
3430
+ cost_price:
3431
+ type: string
3432
+ compare_at_price:
3433
+ type: string
3434
+ option_type_ids:
3435
+ type: string
3436
+ taxon_ids:
3437
+ type: string
3438
+ required:
3439
+ - name
3440
+ - price
3441
+ - shipping_category_id
3442
+ user_params:
3443
+ type: object
3444
+ properties:
3445
+ email:
3446
+ type: string
3447
+ password:
3448
+ type: string
3449
+ password_confirmation:
3450
+ type: string
3451
+ ship_address_id:
3452
+ type: string
3453
+ bill_address_id:
3454
+ type: string
3455
+ required:
3456
+ - email
3457
+ - password
3458
+ - password_confirmation
3459
+ taxon_params:
3460
+ type: object
3461
+ properties:
3462
+ taxonomy_id:
3463
+ type: string
3464
+ parent_id:
3465
+ type: string
3466
+ name:
3467
+ type: string
3468
+ required:
3469
+ - name
3470
+ - taxonomy_id
3471
+ menu_params:
3472
+ type: object
3473
+ properties:
3474
+ name:
3475
+ type: string
3476
+ location:
3477
+ type: string
3478
+ locale:
3479
+ type: string
3480
+ required:
3481
+ - name
3482
+ - location
3483
+ - locale
3484
+ menu_item_params:
3485
+ type: object
3486
+ properties:
3487
+ name:
3488
+ type: string
3489
+ code:
3490
+ type: string
3491
+ subtitle:
3492
+ type: string
3493
+ destination:
3494
+ type: string
3495
+ new_window:
3496
+ type: boolean
3497
+ item_type:
3498
+ type: string
3499
+ linked_resource_type:
3500
+ type: string
3501
+ linked_resource_id:
3502
+ type: integer
3503
+ required:
3504
+ - name
3505
+ menu_item_reposition_params:
3506
+ type: object
3507
+ properties:
3508
+ new_parent_id:
3509
+ type: integer
3510
+ new_position_idx:
3511
+ type: integer
3512
+ required:
3513
+ - name
3514
+ resources_list:
3515
+ type: object
3516
+ properties:
3517
+ data:
3518
+ type: array
3519
+ items:
3520
+ allOf:
3521
+ - "$ref": "#/components/schemas/resource_properties"
3522
+ meta:
3523
+ type: object
3524
+ properties:
3525
+ count:
3526
+ type: integer
3527
+ total_count:
3528
+ type: integer
3529
+ total_pages:
3530
+ type: integer
3531
+ required:
3532
+ - count
3533
+ - total_count
3534
+ - total_pages
3535
+ links:
3536
+ type: object
3537
+ properties:
3538
+ self:
3539
+ type: string
3540
+ next:
3541
+ type: string
3542
+ prev:
3543
+ type: string
3544
+ last:
3545
+ type: string
3546
+ first:
3547
+ type: string
3548
+ required:
3549
+ - self
3550
+ - next
3551
+ - prev
3552
+ - last
3553
+ - first
3554
+ required:
3555
+ - data
3556
+ - meta
3557
+ - links
3558
+ resource_properties:
3559
+ type: object
3560
+ properties:
3561
+ id:
3562
+ type: string
3563
+ type:
3564
+ type: string
3565
+ attributes:
3566
+ type: object
3567
+ relationships:
3568
+ type: object
3569
+ required:
3570
+ - id
3571
+ - type
3572
+ - attributes
3573
+ - relationships
3574
+ resource:
3575
+ type: object
3576
+ properties:
3577
+ data:
3578
+ "$ref": "#/components/schemas/resource_properties"
3579
+ required:
3580
+ - data
3581
+ error:
3582
+ type: object
3583
+ properties:
3584
+ error:
3585
+ type: string
3586
+ required:
3587
+ - error
3588
+ validation_errors:
3589
+ type: object
3590
+ properties:
3591
+ error:
3592
+ type: string
3593
+ errors:
3594
+ type: object
3595
+ required:
3596
+ - error
3597
+ - errors