spree_api 4.2.3.1 → 4.3.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) 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 +29 -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 +19 -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 +112 -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 +9 -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/resource_serializer_concern.rb +16 -0
  41. data/app/serializers/spree/api/v2/base_serializer.rb +32 -0
  42. data/app/serializers/spree/api/v2/platform/address_serializer.rb +15 -0
  43. data/app/serializers/spree/api/v2/platform/base_serializer.rb +10 -0
  44. data/app/serializers/spree/api/v2/platform/classification_serializer.rb +14 -0
  45. data/app/serializers/spree/api/v2/platform/cms_page_serializer.rb +13 -0
  46. data/app/serializers/spree/api/v2/platform/cms_section_serializer.rb +11 -0
  47. data/app/serializers/spree/api/v2/platform/country_serializer.rb +13 -0
  48. data/app/serializers/spree/api/v2/platform/image_serializer.rb +15 -0
  49. data/app/serializers/spree/api/v2/platform/menu_item_serializer.rb +27 -0
  50. data/app/serializers/spree/api/v2/platform/menu_serializer.rb +13 -0
  51. data/app/serializers/spree/api/v2/platform/option_type_serializer.rb +13 -0
  52. data/app/serializers/spree/api/v2/platform/option_value_serializer.rb +13 -0
  53. data/app/serializers/spree/api/v2/platform/product_property_serializer.rb +11 -0
  54. data/app/serializers/spree/api/v2/platform/product_serializer.rb +78 -0
  55. data/app/serializers/spree/api/v2/platform/state_serializer.rb +13 -0
  56. data/app/serializers/spree/api/v2/platform/stock_item_serializer.rb +20 -0
  57. data/app/serializers/spree/api/v2/platform/stock_location_serializer.rb +16 -0
  58. data/app/serializers/spree/api/v2/platform/store_serializer.rb +14 -0
  59. data/app/serializers/spree/api/v2/platform/tax_category_serializer.rb +13 -0
  60. data/app/serializers/spree/api/v2/platform/taxon_image_serializer.rb +13 -0
  61. data/app/serializers/spree/api/v2/platform/taxon_serializer.rb +38 -0
  62. data/app/serializers/spree/api/v2/platform/taxonomy_serializer.rb +14 -0
  63. data/app/serializers/spree/api/v2/platform/user_serializer.rb +37 -0
  64. data/app/serializers/spree/api/v2/platform/variant_serializer.rb +57 -0
  65. data/app/serializers/spree/v2/storefront/base_serializer.rb +3 -2
  66. data/app/serializers/spree/v2/storefront/cms_page_serializer.rb +14 -0
  67. data/app/serializers/spree/v2/storefront/cms_section_serializer.rb +28 -0
  68. data/app/serializers/spree/v2/storefront/country_serializer.rb +4 -4
  69. data/app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb +2 -0
  70. data/app/serializers/spree/v2/storefront/menu_item_serializer.rb +43 -0
  71. data/app/serializers/spree/v2/storefront/menu_serializer.rb +13 -0
  72. data/app/serializers/spree/v2/storefront/product_property_serializer.rb +1 -1
  73. data/app/serializers/spree/v2/storefront/product_serializer.rb +20 -11
  74. data/app/serializers/spree/v2/storefront/store_serializer.rb +10 -0
  75. data/app/serializers/spree/v2/storefront/taxon_serializer.rb +6 -5
  76. data/config/initializers/doorkeeper.rb +8 -1
  77. data/config/initializers/rabl.rb +9 -0
  78. data/config/locales/en.yml +1 -1
  79. data/config/routes.rb +115 -3
  80. data/db/migrate/20210727102516_change_integer_id_columns_type.rb +9 -0
  81. data/docs/oauth/index.yml +4 -4
  82. data/docs/v2/platform/index.yaml +2505 -0
  83. data/docs/v2/storefront/index.yaml +3508 -1220
  84. data/lib/spree/api/engine.rb +6 -17
  85. data/lib/spree/api/testing_support/v2/base.rb +1 -1
  86. data/lib/spree/api/testing_support/v2/platform_contexts.rb +214 -0
  87. data/lib/spree/api/testing_support/v2/serializers_params.rb +14 -0
  88. data/lib/spree/api.rb +1 -0
  89. data/spree_api.gemspec +6 -3
  90. metadata +110 -13
  91. data/app/assets/javascripts/spree/api/main.js +0 -36
  92. data/app/assets/javascripts/spree/api/storefront/cart.js +0 -49
@@ -6,23 +6,6 @@ module Spree
6
6
  isolate_namespace Spree
7
7
  engine_name 'spree_api'
8
8
 
9
- Rabl.configure do |config|
10
- config.include_json_root = false
11
- config.include_child_root = false
12
-
13
- # Motivation here it make it call as_json when rendering timestamps
14
- # and therefore display miliseconds. Otherwise it would fall to
15
- # JSON.dump which doesn't display the miliseconds
16
- config.json_engine = ActiveSupport::JSON
17
- end
18
-
19
- # sets the manifests / assets to be precompiled, even when initialize_on_precompile is false
20
- initializer 'spree.assets.precompile', group: :all do |app|
21
- app.config.assets.precompile += %w[
22
- spree/api/all*
23
- ]
24
- end
25
-
26
9
  initializer 'spree.api.environment', before: :load_config_initializers do |_app|
27
10
  Spree::Api::Config = Spree::ApiConfiguration.new
28
11
  Spree::Api::Dependencies = Spree::ApiDependencies.new
@@ -32,6 +15,12 @@ module Spree
32
15
  Migrations.new(config, engine_name).check
33
16
  end
34
17
 
18
+ initializer 'spree.api.checking_deprecated_preferences' do
19
+ Spree::Api::Config.deprecated_preferences.each do |pref|
20
+ warn "[DEPRECATION] Spree::Api::Config[:#{pref[:name]}] is deprecated. #{pref[:message]}"
21
+ end
22
+ end
23
+
35
24
  def self.root
36
25
  @root ||= Pathname.new(File.expand_path('../../..', __dir__))
37
26
  end
@@ -4,7 +4,7 @@ shared_context 'API v2 tokens' do
4
4
  let(:headers_order_token) { { 'X-Spree-Order-Token' => order.token } }
5
5
  end
6
6
 
7
- [200, 201, 400, 401, 404, 403, 422].each do |status_code|
7
+ [200, 201, 204, 400, 401, 404, 403, 422].each do |status_code|
8
8
  shared_examples "returns #{status_code} HTTP status" do
9
9
  it "returns #{status_code}" do
10
10
  expect(response.status).to eq(status_code)
@@ -0,0 +1,214 @@
1
+ class String
2
+ def articleize
3
+ %w(a e i o u).include?(self[0].downcase) ? "an #{self}" : "a #{self}"
4
+ end
5
+ end
6
+
7
+ shared_context 'Platform API v2' do
8
+ let(:store) { Spree::Store.default }
9
+ let(:admin_app) { Doorkeeper::Application.find_or_create_by!(name: 'Admin Panel', scopes: 'admin', redirect_uri: '') }
10
+ let(:read_app) { Doorkeeper::Application.find_or_create_by!(name: 'Read App', scopes: 'read', redirect_uri: '') }
11
+ let(:oauth_token) do
12
+ Doorkeeper::AccessToken.create!(
13
+ application_id: admin_app.id,
14
+ scopes: admin_app.scopes
15
+ )
16
+ end
17
+ let(:read_oauth_token) do
18
+ Doorkeeper::AccessToken.create!(
19
+ application_id: read_app.id,
20
+ scopes: read_app.scopes
21
+ )
22
+ end
23
+ let(:user_oauth_token) do
24
+ Doorkeeper::AccessToken.create!(
25
+ resource_owner_id: user.id,
26
+ application_id: admin_app.id,
27
+ scopes: admin_app.scopes
28
+ )
29
+ end
30
+
31
+ let(:valid_authorization) { "Bearer #{oauth_token.token}" }
32
+ let(:valid_read_authorization) { "Bearer #{read_oauth_token.token}" }
33
+ let(:valid_user_authorization) { "Bearer #{user_oauth_token.token}" }
34
+ let(:bogus_authorization) { "Bearer #{::Base64.strict_encode64('bogus:bogus')}" }
35
+
36
+ let(:Authorization) { valid_authorization }
37
+ end
38
+
39
+ shared_context 'jsonapi pagination' do
40
+ let(:page) { 1 }
41
+ let(:per_page) { '' }
42
+ parameter name: :page, in: :query, type: :integer, example: 1
43
+ parameter name: :per_page, in: :query, type: :integer, example: 50
44
+ end
45
+
46
+ JSON_API_INCLUDES_DESCRIPTION = 'Select which associated resources you would like to fetch'\
47
+ ', see: <a href="https://jsonapi.org/format/#fetching-includes">'\
48
+ 'https://jsonapi.org/format/#fetching-includes</a>'.freeze
49
+ JSON_API_FILTER_DESCRIPTION = ''
50
+
51
+ def json_api_include_parameter(example = '')
52
+ let(:include) { nil }
53
+ parameter name: :include, in: :query, type: :string, description: JSON_API_INCLUDES_DESCRIPTION, example: example
54
+ end
55
+
56
+ def json_api_filter_parameter(example = '')
57
+ let(:filter) { nil }
58
+ parameter name: :filter, in: :query, type: :string, description: JSON_API_FILTER_DESCRIPTION, example: example
59
+ end
60
+
61
+ shared_examples 'authentication failed' do
62
+ response '401', 'Authentication Failed' do
63
+ let(:Authorization) { bogus_authorization }
64
+ schema '$ref' => '#/components/schemas/error'
65
+ run_test!
66
+ end
67
+ end
68
+
69
+ shared_examples 'record not found' do
70
+ response '404', 'Record not found' do
71
+ let(:id) { 'invalid' }
72
+ schema '$ref' => '#/components/schemas/error'
73
+ run_test!
74
+ end
75
+ end
76
+
77
+ shared_examples 'record found' do
78
+ response '200', 'Record found' do
79
+ schema '$ref' => '#/components/schemas/resource'
80
+ run_test!
81
+ end
82
+ end
83
+
84
+ shared_examples 'record deleted' do
85
+ response '204', 'Record deleted' do
86
+ run_test!
87
+ end
88
+ end
89
+
90
+ shared_examples 'records returned' do
91
+ response '200', 'Records returned' do
92
+ schema '$ref' => '#/components/schemas/resources_list'
93
+ run_test!
94
+ end
95
+ end
96
+
97
+ shared_examples 'record created' do
98
+ response '201', 'record created' do
99
+ schema '$ref' => '#/components/schemas/resource'
100
+ run_test!
101
+ end
102
+ end
103
+
104
+ shared_examples 'record updated' do
105
+ response '200', 'record updated' do
106
+ schema '$ref' => '#/components/schemas/resource'
107
+ run_test!
108
+ end
109
+ end
110
+
111
+ shared_examples 'invalid request' do |param_name|
112
+ response '422', 'invalid request' do
113
+ let(param_name) { invalid_param_value }
114
+ schema '$ref' => '#/components/schemas/validation_errors'
115
+ run_test!
116
+ end
117
+ end
118
+
119
+ # index action
120
+ shared_examples 'GET records list' do |resource_name, include_example, filter_example|
121
+ get "Returns a list of #{resource_name.pluralize}" do
122
+ tags resource_name.pluralize
123
+ security [ bearer_auth: [] ]
124
+ include_context 'jsonapi pagination'
125
+ json_api_include_parameter(include_example)
126
+ json_api_filter_parameter(filter_example)
127
+
128
+ before { records_list }
129
+
130
+ it_behaves_like 'records returned'
131
+ it_behaves_like 'authentication failed'
132
+ end
133
+ end
134
+
135
+ # show
136
+ shared_examples 'GET record' do |resource_name, include_example|
137
+ get "Returns #{resource_name.articleize}" do
138
+ tags resource_name.pluralize
139
+ security [ bearer_auth: [] ]
140
+ parameter name: :id, in: :path, type: :string
141
+ json_api_include_parameter(include_example)
142
+
143
+ it_behaves_like 'record found'
144
+ it_behaves_like 'record not found'
145
+ it_behaves_like 'authentication failed'
146
+ end
147
+ end
148
+
149
+ # create
150
+ shared_examples 'POST create record' do |resource_name, include_example|
151
+ param_name = resource_name.parameterize.to_sym
152
+
153
+ post "Creates #{resource_name.articleize}" do
154
+ tags resource_name.pluralize
155
+ consumes 'application/json'
156
+ security [ bearer_auth: [] ]
157
+ parameter name: param_name, in: :body, schema: { '$ref' => "#/components/schemas/#{param_name}_params" }
158
+ json_api_include_parameter(include_example)
159
+
160
+ let(param_name) { valid_create_param_value }
161
+
162
+ it_behaves_like 'record created'
163
+ it_behaves_like 'invalid request', param_name
164
+ end
165
+ end
166
+
167
+ # update
168
+ shared_examples 'PUT update record' do |resource_name, include_example|
169
+ param_name = resource_name.parameterize.to_sym
170
+
171
+ put "Updates #{resource_name.articleize}" do
172
+ tags resource_name.pluralize
173
+ security [ bearer_auth: [] ]
174
+ consumes 'application/json'
175
+ parameter name: :id, in: :path, type: :string
176
+ parameter name: param_name, in: :body, schema: { '$ref' => "#/components/schemas/#{param_name}_params" }
177
+ json_api_include_parameter(include_example)
178
+
179
+ let(param_name) { valid_update_param_value }
180
+
181
+ it_behaves_like 'record updated'
182
+ it_behaves_like 'invalid request', param_name
183
+ it_behaves_like 'record not found'
184
+ it_behaves_like 'authentication failed'
185
+ end
186
+ end
187
+
188
+ # destroy
189
+ shared_examples 'DELETE record' do |resource_name|
190
+ delete "Deletes #{resource_name.articleize}" do
191
+ tags resource_name.pluralize
192
+ security [ bearer_auth: [] ]
193
+ parameter name: :id, in: :path, type: :string
194
+
195
+ it_behaves_like 'record deleted'
196
+ it_behaves_like 'record not found'
197
+ it_behaves_like 'authentication failed'
198
+ end
199
+ end
200
+
201
+ shared_examples 'CRUD examples' do |resource_name, include_example, filter_example|
202
+ resource_path = resource_name.tableize.pluralize
203
+
204
+ path "/api/v2/platform/#{resource_path}" do
205
+ include_examples 'GET records list', resource_name, include_example, filter_example
206
+ include_examples 'POST create record', resource_name, include_example
207
+ end
208
+
209
+ path "/api/v2/platform/#{resource_path}/{id}" do
210
+ include_examples 'GET record', resource_name, include_example
211
+ include_examples 'PUT update record', resource_name, include_example
212
+ include_examples 'DELETE record', resource_name
213
+ end
214
+ end
@@ -0,0 +1,14 @@
1
+ shared_context 'API v2 serializers params' do
2
+ let(:store) { Spree::Store.default || create(:store, default: true) }
3
+ let(:currency) { store.default_currency }
4
+ let(:locale) { store.default_locale }
5
+
6
+ let(:serializer_params) do
7
+ {
8
+ store: store,
9
+ currency: currency,
10
+ user: nil,
11
+ locale: locale
12
+ }
13
+ end
14
+ end
data/lib/spree/api.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'spree/core'
2
2
 
3
3
  require 'rabl'
4
+ require 'responders'
4
5
 
5
6
  module Spree
6
7
  module Api
data/spree_api.gemspec CHANGED
@@ -14,20 +14,23 @@ Gem::Specification.new do |s|
14
14
  s.metadata = {
15
15
  "bug_tracker_uri" => "https://github.com/spree/spree/issues",
16
16
  "changelog_uri" => "https://github.com/spree/spree/releases/tag/v#{s.version}",
17
- "documentation_uri" => "https://guides.spreecommerce.org/",
17
+ "documentation_uri" => "https://dev-docs.spreecommerce.org/",
18
18
  "source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
19
19
  }
20
20
 
21
- s.required_ruby_version = '>= 2.5.0'
21
+ s.required_ruby_version = '>= 2.5'
22
22
 
23
23
  s.files = `git ls-files`.split($\).reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
24
24
  s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
25
25
  s.require_paths = ["lib"]
26
26
 
27
27
  s.add_development_dependency 'jsonapi-rspec'
28
+ s.add_development_dependency 'rswag-specs'
29
+ s.add_development_dependency 'multi_json'
28
30
 
29
31
  s.add_dependency 'spree_core', s.version
30
- s.add_dependency 'rabl', '~> 0.14.2'
32
+ s.add_dependency 'rabl', '~> 0.14', '>= 0.14.2'
31
33
  s.add_dependency 'jsonapi-serializer', '~> 2.1'
32
34
  s.add_dependency 'doorkeeper', '~> 5.2', '>= 5.2.1'
35
+ s.add_dependency 'responders'
33
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.3.1
4
+ version: 4.3.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Bigg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-05 00:00:00.000000000 Z
11
+ date: 2021-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonapi-rspec
@@ -24,25 +24,56 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rswag-specs
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: multi_json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: spree_core
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - '='
32
60
  - !ruby/object:Gem::Version
33
- version: 4.2.3.1
61
+ version: 4.3.0.rc2
34
62
  type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - '='
39
67
  - !ruby/object:Gem::Version
40
- version: 4.2.3.1
68
+ version: 4.3.0.rc2
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: rabl
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.14'
76
+ - - ">="
46
77
  - !ruby/object:Gem::Version
47
78
  version: 0.14.2
48
79
  type: :runtime
@@ -50,6 +81,9 @@ dependencies:
50
81
  version_requirements: !ruby/object:Gem::Requirement
51
82
  requirements:
52
83
  - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '0.14'
86
+ - - ">="
53
87
  - !ruby/object:Gem::Version
54
88
  version: 0.14.2
55
89
  - !ruby/object:Gem::Dependency
@@ -86,6 +120,20 @@ dependencies:
86
120
  - - ">="
87
121
  - !ruby/object:Gem::Version
88
122
  version: 5.2.1
123
+ - !ruby/object:Gem::Dependency
124
+ name: responders
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
89
137
  description: Spree's API
90
138
  email:
91
139
  - ryan@spreecommerce.com
@@ -97,8 +145,8 @@ files:
97
145
  - Gemfile
98
146
  - LICENSE
99
147
  - Rakefile
100
- - app/assets/javascripts/spree/api/main.js
101
- - app/assets/javascripts/spree/api/storefront/cart.js
148
+ - app/controllers/concerns/spree/api/v2/caching.rb
149
+ - app/controllers/concerns/spree/api/v2/product_list_includes.rb
102
150
  - app/controllers/concerns/spree/api/v2/storefront/order_concern.rb
103
151
  - app/controllers/spree/api/base_controller.rb
104
152
  - app/controllers/spree/api/errors_controller.rb
@@ -133,6 +181,19 @@ files:
133
181
  - app/controllers/spree/api/v1/variants_controller.rb
134
182
  - app/controllers/spree/api/v1/zones_controller.rb
135
183
  - app/controllers/spree/api/v2/base_controller.rb
184
+ - app/controllers/spree/api/v2/platform/addresses_controller.rb
185
+ - app/controllers/spree/api/v2/platform/classifications_controller.rb
186
+ - app/controllers/spree/api/v2/platform/cms_pages_controller.rb
187
+ - app/controllers/spree/api/v2/platform/cms_sections_controller.rb
188
+ - app/controllers/spree/api/v2/platform/countries_controller.rb
189
+ - app/controllers/spree/api/v2/platform/menu_items_controller.rb
190
+ - app/controllers/spree/api/v2/platform/menus_controller.rb
191
+ - app/controllers/spree/api/v2/platform/option_types_controller.rb
192
+ - app/controllers/spree/api/v2/platform/option_values_controller.rb
193
+ - app/controllers/spree/api/v2/platform/products_controller.rb
194
+ - app/controllers/spree/api/v2/platform/resource_controller.rb
195
+ - app/controllers/spree/api/v2/platform/taxons_controller.rb
196
+ - app/controllers/spree/api/v2/platform/users_controller.rb
136
197
  - app/controllers/spree/api/v2/resource_controller.rb
137
198
  - app/controllers/spree/api/v2/storefront/account/addresses_controller.rb
138
199
  - app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb
@@ -140,7 +201,9 @@ files:
140
201
  - app/controllers/spree/api/v2/storefront/account_controller.rb
141
202
  - app/controllers/spree/api/v2/storefront/cart_controller.rb
142
203
  - app/controllers/spree/api/v2/storefront/checkout_controller.rb
204
+ - app/controllers/spree/api/v2/storefront/cms_pages_controller.rb
143
205
  - app/controllers/spree/api/v2/storefront/countries_controller.rb
206
+ - app/controllers/spree/api/v2/storefront/menus_controller.rb
144
207
  - app/controllers/spree/api/v2/storefront/order_status_controller.rb
145
208
  - app/controllers/spree/api/v2/storefront/products_controller.rb
146
209
  - app/controllers/spree/api/v2/storefront/stores_controller.rb
@@ -152,14 +215,43 @@ files:
152
215
  - app/models/concerns/spree/user_api_methods.rb
153
216
  - app/models/spree/api_configuration.rb
154
217
  - app/models/spree/api_dependencies.rb
218
+ - app/serializers/concerns/spree/api/v2/resource_serializer_concern.rb
219
+ - app/serializers/spree/api/v2/base_serializer.rb
220
+ - app/serializers/spree/api/v2/platform/address_serializer.rb
221
+ - app/serializers/spree/api/v2/platform/base_serializer.rb
222
+ - app/serializers/spree/api/v2/platform/classification_serializer.rb
223
+ - app/serializers/spree/api/v2/platform/cms_page_serializer.rb
224
+ - app/serializers/spree/api/v2/platform/cms_section_serializer.rb
225
+ - app/serializers/spree/api/v2/platform/country_serializer.rb
226
+ - app/serializers/spree/api/v2/platform/image_serializer.rb
227
+ - app/serializers/spree/api/v2/platform/menu_item_serializer.rb
228
+ - app/serializers/spree/api/v2/platform/menu_serializer.rb
229
+ - app/serializers/spree/api/v2/platform/option_type_serializer.rb
230
+ - app/serializers/spree/api/v2/platform/option_value_serializer.rb
231
+ - app/serializers/spree/api/v2/platform/product_property_serializer.rb
232
+ - app/serializers/spree/api/v2/platform/product_serializer.rb
233
+ - app/serializers/spree/api/v2/platform/state_serializer.rb
234
+ - app/serializers/spree/api/v2/platform/stock_item_serializer.rb
235
+ - app/serializers/spree/api/v2/platform/stock_location_serializer.rb
236
+ - app/serializers/spree/api/v2/platform/store_serializer.rb
237
+ - app/serializers/spree/api/v2/platform/tax_category_serializer.rb
238
+ - app/serializers/spree/api/v2/platform/taxon_image_serializer.rb
239
+ - app/serializers/spree/api/v2/platform/taxon_serializer.rb
240
+ - app/serializers/spree/api/v2/platform/taxonomy_serializer.rb
241
+ - app/serializers/spree/api/v2/platform/user_serializer.rb
242
+ - app/serializers/spree/api/v2/platform/variant_serializer.rb
155
243
  - app/serializers/spree/v2/storefront/address_serializer.rb
156
244
  - app/serializers/spree/v2/storefront/base_serializer.rb
157
245
  - app/serializers/spree/v2/storefront/cart_serializer.rb
246
+ - app/serializers/spree/v2/storefront/cms_page_serializer.rb
247
+ - app/serializers/spree/v2/storefront/cms_section_serializer.rb
158
248
  - app/serializers/spree/v2/storefront/country_serializer.rb
159
249
  - app/serializers/spree/v2/storefront/credit_card_serializer.rb
160
250
  - app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb
161
251
  - app/serializers/spree/v2/storefront/image_serializer.rb
162
252
  - app/serializers/spree/v2/storefront/line_item_serializer.rb
253
+ - app/serializers/spree/v2/storefront/menu_item_serializer.rb
254
+ - app/serializers/spree/v2/storefront/menu_serializer.rb
163
255
  - app/serializers/spree/v2/storefront/option_type_serializer.rb
164
256
  - app/serializers/spree/v2/storefront/option_value_serializer.rb
165
257
  - app/serializers/spree/v2/storefront/payment_method_serializer.rb
@@ -281,6 +373,7 @@ files:
281
373
  - app/views/spree/api/v1/zones/show.rabl
282
374
  - config/initializers/doorkeeper.rb
283
375
  - config/initializers/json_api_mime_types.rb
376
+ - config/initializers/rabl.rb
284
377
  - config/initializers/user_class_extensions.rb
285
378
  - config/locales/en.yml
286
379
  - config/routes.rb
@@ -289,7 +382,9 @@ files:
289
382
  - db/migrate/20120530054546_rename_api_key_to_spree_api_key.rb
290
383
  - db/migrate/20131017162334_add_index_to_user_spree_api_key.rb
291
384
  - db/migrate/20180320110726_create_doorkeeper_tables.rb
385
+ - db/migrate/20210727102516_change_integer_id_columns_type.rb
292
386
  - docs/oauth/index.yml
387
+ - docs/v2/platform/index.yaml
293
388
  - docs/v2/storefront/index.yaml
294
389
  - lib/spree/api.rb
295
390
  - lib/spree/api/controller_setup.rb
@@ -301,6 +396,8 @@ files:
301
396
  - lib/spree/api/testing_support/setup.rb
302
397
  - lib/spree/api/testing_support/v2/base.rb
303
398
  - lib/spree/api/testing_support/v2/current_order.rb
399
+ - lib/spree/api/testing_support/v2/platform_contexts.rb
400
+ - lib/spree/api/testing_support/v2/serializers_params.rb
304
401
  - lib/spree_api.rb
305
402
  - script/rails
306
403
  - spec/fixtures/thinking-cat.jpg
@@ -310,9 +407,9 @@ licenses:
310
407
  - BSD-3-Clause
311
408
  metadata:
312
409
  bug_tracker_uri: https://github.com/spree/spree/issues
313
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.3.1
314
- documentation_uri: https://guides.spreecommerce.org/
315
- source_code_uri: https://github.com/spree/spree/tree/v4.2.3.1
410
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.3.0.rc2
411
+ documentation_uri: https://dev-docs.spreecommerce.org/
412
+ source_code_uri: https://github.com/spree/spree/tree/v4.3.0.rc2
316
413
  post_install_message:
317
414
  rdoc_options: []
318
415
  require_paths:
@@ -321,14 +418,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
418
  requirements:
322
419
  - - ">="
323
420
  - !ruby/object:Gem::Version
324
- version: 2.5.0
421
+ version: '2.5'
325
422
  required_rubygems_version: !ruby/object:Gem::Requirement
326
423
  requirements:
327
- - - ">="
424
+ - - ">"
328
425
  - !ruby/object:Gem::Version
329
- version: '0'
426
+ version: 1.3.1
330
427
  requirements: []
331
- rubygems_version: 3.1.4
428
+ rubygems_version: 3.2.3
332
429
  signing_key:
333
430
  specification_version: 4
334
431
  summary: Spree's API