spree_api 3.2.9 → 3.3.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/api/base_controller.rb +11 -12
  3. data/app/controllers/spree/api/v1/checkouts_controller.rb +5 -8
  4. data/app/controllers/spree/api/v1/customer_returns_controller.rb +24 -0
  5. data/app/controllers/spree/api/v1/orders_controller.rb +13 -24
  6. data/app/controllers/spree/api/v1/payments_controller.rb +2 -3
  7. data/app/controllers/spree/api/v1/reimbursements_controller.rb +24 -0
  8. data/app/controllers/spree/api/v1/shipments_controller.rb +4 -4
  9. data/app/controllers/spree/api/v1/zones_controller.rb +8 -3
  10. data/app/helpers/spree/api/api_helpers.rb +13 -1
  11. data/app/models/concerns/spree/user_api_authentication.rb +19 -0
  12. data/app/models/concerns/spree/user_api_methods.rb +7 -0
  13. data/app/views/spree/api/v1/customer_returns/index.v1.rabl +7 -0
  14. data/app/views/spree/api/v1/line_items/show.v1.rabl +0 -1
  15. data/app/views/spree/api/v1/reimbursements/index.v1.rabl +7 -0
  16. data/config/initializers/user_class_extensions.rb +7 -0
  17. data/config/routes.rb +3 -0
  18. data/spec/controllers/spree/api/base_controller_spec.rb +84 -0
  19. data/spec/controllers/spree/api/v1/addresses_controller_spec.rb +56 -0
  20. data/spec/controllers/spree/api/v1/checkouts_controller_spec.rb +361 -0
  21. data/spec/controllers/spree/api/v1/classifications_controller_spec.rb +48 -0
  22. data/spec/controllers/spree/api/v1/countries_controller_spec.rb +48 -0
  23. data/spec/controllers/spree/api/v1/credit_cards_controller_spec.rb +80 -0
  24. data/spec/controllers/spree/api/v1/customer_returns_controller_spec.rb +27 -0
  25. data/spec/controllers/spree/api/v1/images_controller_spec.rb +114 -0
  26. data/spec/controllers/spree/api/v1/inventory_units_controller_spec.rb +48 -0
  27. data/spec/controllers/spree/api/v1/line_items_controller_spec.rb +210 -0
  28. data/spec/controllers/spree/api/v1/option_types_controller_spec.rb +122 -0
  29. data/spec/controllers/spree/api/v1/option_values_controller_spec.rb +141 -0
  30. data/spec/controllers/spree/api/v1/orders_controller_spec.rb +735 -0
  31. data/spec/controllers/spree/api/v1/payments_controller_spec.rb +234 -0
  32. data/spec/controllers/spree/api/v1/product_properties_controller_spec.rb +156 -0
  33. data/spec/controllers/spree/api/v1/products_controller_spec.rb +409 -0
  34. data/spec/controllers/spree/api/v1/promotion_application_spec.rb +50 -0
  35. data/spec/controllers/spree/api/v1/promotions_controller_spec.rb +64 -0
  36. data/spec/controllers/spree/api/v1/properties_controller_spec.rb +102 -0
  37. data/spec/controllers/spree/api/v1/reimbursements_controller_spec.rb +24 -0
  38. data/spec/controllers/spree/api/v1/return_authorizations_controller_spec.rb +161 -0
  39. data/spec/controllers/spree/api/v1/shipments_controller_spec.rb +187 -0
  40. data/spec/controllers/spree/api/v1/states_controller_spec.rb +86 -0
  41. data/spec/controllers/spree/api/v1/stock_items_controller_spec.rb +151 -0
  42. data/spec/controllers/spree/api/v1/stock_locations_controller_spec.rb +113 -0
  43. data/spec/controllers/spree/api/v1/stock_movements_controller_spec.rb +84 -0
  44. data/spec/controllers/spree/api/v1/stores_controller_spec.rb +133 -0
  45. data/spec/controllers/spree/api/v1/tags_controller_spec.rb +102 -0
  46. data/spec/controllers/spree/api/v1/taxonomies_controller_spec.rb +114 -0
  47. data/spec/controllers/spree/api/v1/taxons_controller_spec.rb +177 -0
  48. data/spec/controllers/spree/api/v1/unauthenticated_products_controller_spec.rb +26 -0
  49. data/spec/controllers/spree/api/v1/users_controller_spec.rb +153 -0
  50. data/spec/controllers/spree/api/v1/variants_controller_spec.rb +205 -0
  51. data/spec/controllers/spree/api/v1/zones_controller_spec.rb +91 -0
  52. data/spec/models/spree/legacy_user_spec.rb +19 -0
  53. data/spec/requests/rabl_cache_spec.rb +32 -0
  54. data/spec/requests/ransackable_attributes_spec.rb +79 -0
  55. data/spec/requests/version_spec.rb +19 -0
  56. data/spec/shared_examples/protect_product_actions.rb +17 -0
  57. data/spec/spec_helper.rb +63 -0
  58. data/spec/support/controller_hacks.rb +40 -0
  59. data/spec/support/database_cleaner.rb +14 -0
  60. data/spec/support/have_attributes_matcher.rb +13 -0
  61. data/spree_api.gemspec +4 -3
  62. metadata +105 -13
  63. data/app/views/spree/api/v1/config/money.v1.rabl +0 -2
  64. data/app/views/spree/api/v1/config/show.v1.rabl +0 -2
@@ -0,0 +1,40 @@
1
+ require 'active_support/all'
2
+ module ControllerHacks
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ routes { Spree::Core::Engine.routes }
7
+ end
8
+
9
+ def api_get(action, params={}, session=nil, flash=nil)
10
+ api_process(action, params, session, flash, "GET")
11
+ end
12
+
13
+ def api_post(action, params={}, session=nil, flash=nil)
14
+ api_process(action, params, session, flash, "POST")
15
+ end
16
+
17
+ def api_put(action, params={}, session=nil, flash=nil)
18
+ api_process(action, params, session, flash, "PUT")
19
+ end
20
+
21
+ def api_delete(action, params={}, session=nil, flash=nil)
22
+ api_process(action, params, session, flash, "DELETE")
23
+ end
24
+
25
+ def api_process(action, params={}, session=nil, flash=nil, method="get")
26
+ scoping = respond_to?(:resource_scoping) ? resource_scoping : {}
27
+ process(
28
+ action,
29
+ method: method,
30
+ params: params.merge(scoping),
31
+ session: session,
32
+ flash: flash,
33
+ format: :json
34
+ )
35
+ end
36
+ end
37
+
38
+ RSpec.configure do |config|
39
+ config.include ControllerHacks, type: :controller
40
+ end
@@ -0,0 +1,14 @@
1
+ RSpec.configure do |config|
2
+ config.before(:suite) do
3
+ DatabaseCleaner.strategy = :transaction
4
+ DatabaseCleaner.clean_with(:truncation)
5
+ end
6
+
7
+ config.before(:each) do
8
+ DatabaseCleaner.start
9
+ end
10
+
11
+ config.after(:each) do
12
+ DatabaseCleaner.clean
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+
2
+
3
+
4
+
5
+ RSpec::Matchers.define :have_attributes do |expected_attributes|
6
+ match do |actual|
7
+ # actual is a Hash object representing an object, like this:
8
+ # { "name" => "Product #1" }
9
+ actual_attributes = actual.keys.map(&:to_sym)
10
+ expected_attributes.map(&:to_sym).all? { |attr| actual_attributes.include?(attr) }
11
+ end
12
+ end
13
+
data/spree_api.gemspec CHANGED
@@ -9,15 +9,16 @@ Gem::Specification.new do |s|
9
9
  s.homepage = 'https://spreecommerce.com'
10
10
  s.license = 'BSD-3-Clause'
11
11
 
12
- s.required_ruby_version = '>= 2.2.2'
12
+ s.required_ruby_version = '>= 2.2.7'
13
13
 
14
- s.files = `git ls-files`.split($\).reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
14
+ s.files = `git ls-files`.split($\)
15
15
  s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
17
  s.name = "spree_api"
17
18
  s.require_paths = ["lib"]
18
19
  s.version = Spree.version
19
20
 
20
21
  s.add_dependency 'spree_core', s.version
21
22
  s.add_dependency 'rabl', '~> 0.13.1'
22
- s.add_dependency 'versioncake', '~> 3.1.0'
23
+ s.add_dependency 'versioncake', '~> 3.3.0'
23
24
  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: 3.2.9
4
+ version: 3.3.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Bigg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-24 00:00:00.000000000 Z
11
+ date: 2017-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.9
19
+ version: 3.3.0.rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.9
26
+ version: 3.3.0.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rabl
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.1.0
47
+ version: 3.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.1.0
54
+ version: 3.3.0
55
55
  description: Spree's API
56
56
  email:
57
57
  - ryan@spreecommerce.com
@@ -69,6 +69,7 @@ files:
69
69
  - app/controllers/spree/api/v1/classifications_controller.rb
70
70
  - app/controllers/spree/api/v1/countries_controller.rb
71
71
  - app/controllers/spree/api/v1/credit_cards_controller.rb
72
+ - app/controllers/spree/api/v1/customer_returns_controller.rb
72
73
  - app/controllers/spree/api/v1/images_controller.rb
73
74
  - app/controllers/spree/api/v1/inventory_units_controller.rb
74
75
  - app/controllers/spree/api/v1/line_items_controller.rb
@@ -80,6 +81,7 @@ files:
80
81
  - app/controllers/spree/api/v1/products_controller.rb
81
82
  - app/controllers/spree/api/v1/promotions_controller.rb
82
83
  - app/controllers/spree/api/v1/properties_controller.rb
84
+ - app/controllers/spree/api/v1/reimbursements_controller.rb
83
85
  - app/controllers/spree/api/v1/return_authorizations_controller.rb
84
86
  - app/controllers/spree/api/v1/shipments_controller.rb
85
87
  - app/controllers/spree/api/v1/states_controller.rb
@@ -94,6 +96,8 @@ files:
94
96
  - app/controllers/spree/api/v1/variants_controller.rb
95
97
  - app/controllers/spree/api/v1/zones_controller.rb
96
98
  - app/helpers/spree/api/api_helpers.rb
99
+ - app/models/concerns/spree/user_api_authentication.rb
100
+ - app/models/concerns/spree/user_api_methods.rb
97
101
  - app/models/spree/api_configuration.rb
98
102
  - app/views/spree/api/errors/gateway_error.v1.rabl
99
103
  - app/views/spree/api/errors/invalid_api_key.v1.rabl
@@ -103,12 +107,11 @@ files:
103
107
  - app/views/spree/api/errors/unauthorized.v1.rabl
104
108
  - app/views/spree/api/v1/addresses/show.v1.rabl
105
109
  - app/views/spree/api/v1/adjustments/show.v1.rabl
106
- - app/views/spree/api/v1/config/money.v1.rabl
107
- - app/views/spree/api/v1/config/show.v1.rabl
108
110
  - app/views/spree/api/v1/countries/index.v1.rabl
109
111
  - app/views/spree/api/v1/countries/show.v1.rabl
110
112
  - app/views/spree/api/v1/credit_cards/index.v1.rabl
111
113
  - app/views/spree/api/v1/credit_cards/show.v1.rabl
114
+ - app/views/spree/api/v1/customer_returns/index.v1.rabl
112
115
  - app/views/spree/api/v1/images/index.v1.rabl
113
116
  - app/views/spree/api/v1/images/new.v1.rabl
114
117
  - app/views/spree/api/v1/images/show.v1.rabl
@@ -150,6 +153,7 @@ files:
150
153
  - app/views/spree/api/v1/properties/index.v1.rabl
151
154
  - app/views/spree/api/v1/properties/new.v1.rabl
152
155
  - app/views/spree/api/v1/properties/show.v1.rabl
156
+ - app/views/spree/api/v1/reimbursements/index.v1.rabl
153
157
  - app/views/spree/api/v1/return_authorizations/index.v1.rabl
154
158
  - app/views/spree/api/v1/return_authorizations/new.v1.rabl
155
159
  - app/views/spree/api/v1/return_authorizations/show.v1.rabl
@@ -192,6 +196,7 @@ files:
192
196
  - app/views/spree/api/v1/zones/index.v1.rabl
193
197
  - app/views/spree/api/v1/zones/show.v1.rabl
194
198
  - config/initializers/metal_load_paths.rb
199
+ - config/initializers/user_class_extensions.rb
195
200
  - config/locales/en.yml
196
201
  - config/routes.rb
197
202
  - db/migrate/20100107141738_add_api_key_to_spree_users.rb
@@ -208,7 +213,50 @@ files:
208
213
  - lib/spree/api/testing_support/setup.rb
209
214
  - lib/spree_api.rb
210
215
  - script/rails
216
+ - spec/controllers/spree/api/base_controller_spec.rb
217
+ - spec/controllers/spree/api/v1/addresses_controller_spec.rb
218
+ - spec/controllers/spree/api/v1/checkouts_controller_spec.rb
219
+ - spec/controllers/spree/api/v1/classifications_controller_spec.rb
220
+ - spec/controllers/spree/api/v1/countries_controller_spec.rb
221
+ - spec/controllers/spree/api/v1/credit_cards_controller_spec.rb
222
+ - spec/controllers/spree/api/v1/customer_returns_controller_spec.rb
223
+ - spec/controllers/spree/api/v1/images_controller_spec.rb
224
+ - spec/controllers/spree/api/v1/inventory_units_controller_spec.rb
225
+ - spec/controllers/spree/api/v1/line_items_controller_spec.rb
226
+ - spec/controllers/spree/api/v1/option_types_controller_spec.rb
227
+ - spec/controllers/spree/api/v1/option_values_controller_spec.rb
228
+ - spec/controllers/spree/api/v1/orders_controller_spec.rb
229
+ - spec/controllers/spree/api/v1/payments_controller_spec.rb
230
+ - spec/controllers/spree/api/v1/product_properties_controller_spec.rb
231
+ - spec/controllers/spree/api/v1/products_controller_spec.rb
232
+ - spec/controllers/spree/api/v1/promotion_application_spec.rb
233
+ - spec/controllers/spree/api/v1/promotions_controller_spec.rb
234
+ - spec/controllers/spree/api/v1/properties_controller_spec.rb
235
+ - spec/controllers/spree/api/v1/reimbursements_controller_spec.rb
236
+ - spec/controllers/spree/api/v1/return_authorizations_controller_spec.rb
237
+ - spec/controllers/spree/api/v1/shipments_controller_spec.rb
238
+ - spec/controllers/spree/api/v1/states_controller_spec.rb
239
+ - spec/controllers/spree/api/v1/stock_items_controller_spec.rb
240
+ - spec/controllers/spree/api/v1/stock_locations_controller_spec.rb
241
+ - spec/controllers/spree/api/v1/stock_movements_controller_spec.rb
242
+ - spec/controllers/spree/api/v1/stores_controller_spec.rb
243
+ - spec/controllers/spree/api/v1/tags_controller_spec.rb
244
+ - spec/controllers/spree/api/v1/taxonomies_controller_spec.rb
245
+ - spec/controllers/spree/api/v1/taxons_controller_spec.rb
246
+ - spec/controllers/spree/api/v1/unauthenticated_products_controller_spec.rb
247
+ - spec/controllers/spree/api/v1/users_controller_spec.rb
248
+ - spec/controllers/spree/api/v1/variants_controller_spec.rb
249
+ - spec/controllers/spree/api/v1/zones_controller_spec.rb
211
250
  - spec/fixtures/thinking-cat.jpg
251
+ - spec/models/spree/legacy_user_spec.rb
252
+ - spec/requests/rabl_cache_spec.rb
253
+ - spec/requests/ransackable_attributes_spec.rb
254
+ - spec/requests/version_spec.rb
255
+ - spec/shared_examples/protect_product_actions.rb
256
+ - spec/spec_helper.rb
257
+ - spec/support/controller_hacks.rb
258
+ - spec/support/database_cleaner.rb
259
+ - spec/support/have_attributes_matcher.rb
212
260
  - spree_api.gemspec
213
261
  homepage: https://spreecommerce.com
214
262
  licenses:
@@ -222,16 +270,60 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
270
  requirements:
223
271
  - - ">="
224
272
  - !ruby/object:Gem::Version
225
- version: 2.2.2
273
+ version: 2.2.7
226
274
  required_rubygems_version: !ruby/object:Gem::Requirement
227
275
  requirements:
228
- - - ">="
276
+ - - ">"
229
277
  - !ruby/object:Gem::Version
230
- version: '0'
278
+ version: 1.3.1
231
279
  requirements: []
232
280
  rubyforge_project:
233
- rubygems_version: 2.6.10
281
+ rubygems_version: 2.6.12
234
282
  signing_key:
235
283
  specification_version: 4
236
284
  summary: Spree's API
237
- test_files: []
285
+ test_files:
286
+ - spec/controllers/spree/api/base_controller_spec.rb
287
+ - spec/controllers/spree/api/v1/addresses_controller_spec.rb
288
+ - spec/controllers/spree/api/v1/checkouts_controller_spec.rb
289
+ - spec/controllers/spree/api/v1/classifications_controller_spec.rb
290
+ - spec/controllers/spree/api/v1/countries_controller_spec.rb
291
+ - spec/controllers/spree/api/v1/credit_cards_controller_spec.rb
292
+ - spec/controllers/spree/api/v1/customer_returns_controller_spec.rb
293
+ - spec/controllers/spree/api/v1/images_controller_spec.rb
294
+ - spec/controllers/spree/api/v1/inventory_units_controller_spec.rb
295
+ - spec/controllers/spree/api/v1/line_items_controller_spec.rb
296
+ - spec/controllers/spree/api/v1/option_types_controller_spec.rb
297
+ - spec/controllers/spree/api/v1/option_values_controller_spec.rb
298
+ - spec/controllers/spree/api/v1/orders_controller_spec.rb
299
+ - spec/controllers/spree/api/v1/payments_controller_spec.rb
300
+ - spec/controllers/spree/api/v1/product_properties_controller_spec.rb
301
+ - spec/controllers/spree/api/v1/products_controller_spec.rb
302
+ - spec/controllers/spree/api/v1/promotion_application_spec.rb
303
+ - spec/controllers/spree/api/v1/promotions_controller_spec.rb
304
+ - spec/controllers/spree/api/v1/properties_controller_spec.rb
305
+ - spec/controllers/spree/api/v1/reimbursements_controller_spec.rb
306
+ - spec/controllers/spree/api/v1/return_authorizations_controller_spec.rb
307
+ - spec/controllers/spree/api/v1/shipments_controller_spec.rb
308
+ - spec/controllers/spree/api/v1/states_controller_spec.rb
309
+ - spec/controllers/spree/api/v1/stock_items_controller_spec.rb
310
+ - spec/controllers/spree/api/v1/stock_locations_controller_spec.rb
311
+ - spec/controllers/spree/api/v1/stock_movements_controller_spec.rb
312
+ - spec/controllers/spree/api/v1/stores_controller_spec.rb
313
+ - spec/controllers/spree/api/v1/tags_controller_spec.rb
314
+ - spec/controllers/spree/api/v1/taxonomies_controller_spec.rb
315
+ - spec/controllers/spree/api/v1/taxons_controller_spec.rb
316
+ - spec/controllers/spree/api/v1/unauthenticated_products_controller_spec.rb
317
+ - spec/controllers/spree/api/v1/users_controller_spec.rb
318
+ - spec/controllers/spree/api/v1/variants_controller_spec.rb
319
+ - spec/controllers/spree/api/v1/zones_controller_spec.rb
320
+ - spec/fixtures/thinking-cat.jpg
321
+ - spec/models/spree/legacy_user_spec.rb
322
+ - spec/requests/rabl_cache_spec.rb
323
+ - spec/requests/ransackable_attributes_spec.rb
324
+ - spec/requests/version_spec.rb
325
+ - spec/shared_examples/protect_product_actions.rb
326
+ - spec/spec_helper.rb
327
+ - spec/support/controller_hacks.rb
328
+ - spec/support/database_cleaner.rb
329
+ - spec/support/have_attributes_matcher.rb
@@ -1,2 +0,0 @@
1
- object false
2
- node(:symbol) { ::Money.new(1, Spree::Config[:currency]).symbol }
@@ -1,2 +0,0 @@
1
- object false
2
- node(:default_country_id) { Spree::Config[:default_country_id] }