solidus_api 2.4.2 → 2.5.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_api might be problematic. Click here for more details.

Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -5
  3. data/Rakefile +7 -8
  4. data/app/controllers/spree/api/line_items_controller.rb +1 -3
  5. data/app/controllers/spree/api/orders_controller.rb +1 -1
  6. data/app/controllers/spree/api/products_controller.rb +1 -1
  7. data/app/controllers/spree/api/shipments_controller.rb +21 -7
  8. data/app/controllers/spree/api/stock_items_controller.rb +4 -4
  9. data/app/controllers/spree/api/taxonomies_controller.rb +1 -0
  10. data/app/controllers/spree/api/taxons_controller.rb +1 -0
  11. data/app/controllers/spree/api/variants_controller.rb +13 -4
  12. data/app/helpers/spree/api/api_helpers.rb +0 -9
  13. data/app/views/spree/api/shared/_pagination.json.jbuilder +1 -1
  14. data/app/views/spree/api/shipments/estimated_rates.json.jbuilder +4 -0
  15. data/app/views/spree/api/variants/_big.json.jbuilder +0 -1
  16. data/app/views/spree/api/variants/_small.json.jbuilder +6 -1
  17. data/config/locales/en.yml +0 -6
  18. data/config/routes.rb +3 -7
  19. data/lib/spree/api/engine.rb +0 -10
  20. data/lib/spree_api.rb +0 -1
  21. data/solidus_api.gemspec +1 -2
  22. data/spec/controllers/spree/api/resource_controller_spec.rb +9 -9
  23. data/spec/features/checkout_spec.rb +8 -8
  24. data/spec/requests/api/address_books_spec.rb +1 -3
  25. data/spec/requests/spree/api/checkouts_controller_spec.rb +4 -5
  26. data/spec/requests/spree/api/config_controller_spec.rb +2 -2
  27. data/spec/requests/spree/api/orders_controller_spec.rb +27 -11
  28. data/spec/requests/spree/api/products_controller_spec.rb +1 -1
  29. data/spec/requests/spree/api/return_authorizations_controller_spec.rb +13 -13
  30. data/spec/requests/spree/api/shipments_controller_spec.rb +66 -4
  31. data/spec/requests/spree/api/stock_items_controller_spec.rb +4 -4
  32. data/spec/requests/spree/api/stock_locations_controller_spec.rb +7 -7
  33. data/spec/requests/spree/api/taxonomies_controller_spec.rb +1 -0
  34. data/spec/requests/spree/api/taxons_controller_spec.rb +3 -2
  35. data/spec/requests/spree/api/variants_controller_spec.rb +26 -0
  36. data/spec/spec_helper.rb +13 -23
  37. metadata +11 -41
  38. data/Gemfile +0 -5
  39. data/app/controllers/spree/api/stock_transfers_controller.rb +0 -20
  40. data/app/controllers/spree/api/transfer_items_controller.rb +0 -42
  41. data/app/views/spree/api/errors/variant_not_in_stock_transfer.json.jbuilder +0 -1
  42. data/app/views/spree/api/stock_transfers/receive.json.jbuilder +0 -4
  43. data/app/views/spree/api/transfer_items/_transfer_item.json.jbuilder +0 -5
  44. data/app/views/spree/api/transfer_items/show.json.jbuilder +0 -1
  45. data/spec/requests/spree/api/stock_transfers_controller_spec.rb +0 -97
  46. data/spec/requests/spree/api/transfer_items_controller_spec.rb +0 -150
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.5.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-20 00:00:00.000000000 Z
11
+ date: 2018-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.4.2
19
+ version: 2.5.0.beta1
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: 2.4.2
27
- - !ruby/object:Gem::Dependency
28
- name: versioncake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '3.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '3.0'
26
+ version: 2.5.0.beta1
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: responders
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,25 +53,19 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '2.6'
69
55
  - !ruby/object:Gem::Dependency
70
- name: kaminari
56
+ name: kaminari-activerecord
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0.17'
76
- - - "<"
59
+ - - "~>"
77
60
  - !ruby/object:Gem::Version
78
- version: '2.0'
61
+ version: '1.1'
79
62
  type: :runtime
80
63
  prerelease: false
81
64
  version_requirements: !ruby/object:Gem::Requirement
82
65
  requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- version: '0.17'
86
- - - "<"
66
+ - - "~>"
87
67
  - !ruby/object:Gem::Version
88
- version: '2.0'
68
+ version: '1.1'
89
69
  description: REST API for the Solidus e-commerce framework.
90
70
  email: contact@solidus.io
91
71
  executables: []
@@ -93,7 +73,6 @@ extensions: []
93
73
  extra_rdoc_files: []
94
74
  files:
95
75
  - ".gitignore"
96
- - Gemfile
97
76
  - LICENSE
98
77
  - README.md
99
78
  - Rakefile
@@ -123,12 +102,10 @@ files:
123
102
  - app/controllers/spree/api/stock_items_controller.rb
124
103
  - app/controllers/spree/api/stock_locations_controller.rb
125
104
  - app/controllers/spree/api/stock_movements_controller.rb
126
- - app/controllers/spree/api/stock_transfers_controller.rb
127
105
  - app/controllers/spree/api/store_credit_events_controller.rb
128
106
  - app/controllers/spree/api/stores_controller.rb
129
107
  - app/controllers/spree/api/taxonomies_controller.rb
130
108
  - app/controllers/spree/api/taxons_controller.rb
131
- - app/controllers/spree/api/transfer_items_controller.rb
132
109
  - app/controllers/spree/api/users_controller.rb
133
110
  - app/controllers/spree/api/variants_controller.rb
134
111
  - app/controllers/spree/api/zones_controller.rb
@@ -153,7 +130,6 @@ files:
153
130
  - app/views/spree/api/errors/must_specify_api_key.json.jbuilder
154
131
  - app/views/spree/api/errors/not_found.json.jbuilder
155
132
  - app/views/spree/api/errors/unauthorized.json.jbuilder
156
- - app/views/spree/api/errors/variant_not_in_stock_transfer.json.jbuilder
157
133
  - app/views/spree/api/images/_image.json.jbuilder
158
134
  - app/views/spree/api/images/index.json.jbuilder
159
135
  - app/views/spree/api/images/show.json.jbuilder
@@ -200,6 +176,7 @@ files:
200
176
  - app/views/spree/api/shipments/_big.json.jbuilder
201
177
  - app/views/spree/api/shipments/_small.json.jbuilder
202
178
  - app/views/spree/api/shipments/cannot_ready_shipment.json.jbuilder
179
+ - app/views/spree/api/shipments/estimated_rates.json.jbuilder
203
180
  - app/views/spree/api/shipments/mine.json.jbuilder
204
181
  - app/views/spree/api/shipments/show.json.jbuilder
205
182
  - app/views/spree/api/shipping_rates/_shipping_rate.json.jbuilder
@@ -214,7 +191,6 @@ files:
214
191
  - app/views/spree/api/stock_movements/_stock_movement.json.jbuilder
215
192
  - app/views/spree/api/stock_movements/index.json.jbuilder
216
193
  - app/views/spree/api/stock_movements/show.json.jbuilder
217
- - app/views/spree/api/stock_transfers/receive.json.jbuilder
218
194
  - app/views/spree/api/store_credit_events/mine.json.jbuilder
219
195
  - app/views/spree/api/stores/index.json.jbuilder
220
196
  - app/views/spree/api/stores/show.json.jbuilder
@@ -230,8 +206,6 @@ files:
230
206
  - app/views/spree/api/taxons/jstree.json.jbuilder
231
207
  - app/views/spree/api/taxons/new.json.jbuilder
232
208
  - app/views/spree/api/taxons/show.json.jbuilder
233
- - app/views/spree/api/transfer_items/_transfer_item.json.jbuilder
234
- - app/views/spree/api/transfer_items/show.json.jbuilder
235
209
  - app/views/spree/api/users/_user.json.jbuilder
236
210
  - app/views/spree/api/users/index.json.jbuilder
237
211
  - app/views/spree/api/users/new.json.jbuilder
@@ -293,12 +267,10 @@ files:
293
267
  - spec/requests/spree/api/stock_items_controller_spec.rb
294
268
  - spec/requests/spree/api/stock_locations_controller_spec.rb
295
269
  - spec/requests/spree/api/stock_movements_controller_spec.rb
296
- - spec/requests/spree/api/stock_transfers_controller_spec.rb
297
270
  - spec/requests/spree/api/store_credit_events_controller_spec.rb
298
271
  - spec/requests/spree/api/stores_controller_spec.rb
299
272
  - spec/requests/spree/api/taxonomies_controller_spec.rb
300
273
  - spec/requests/spree/api/taxons_controller_spec.rb
301
- - spec/requests/spree/api/transfer_items_controller_spec.rb
302
274
  - spec/requests/spree/api/unauthenticated_products_controller_spec.rb
303
275
  - spec/requests/spree/api/users_controller_spec.rb
304
276
  - spec/requests/spree/api/variants_controller_spec.rb
@@ -333,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
333
305
  version: 1.8.23
334
306
  requirements: []
335
307
  rubyforge_project:
336
- rubygems_version: 2.6.11
308
+ rubygems_version: 2.7.3
337
309
  signing_key:
338
310
  specification_version: 4
339
311
  summary: REST API for the Solidus e-commerce framework.
@@ -370,12 +342,10 @@ test_files:
370
342
  - spec/requests/spree/api/stock_items_controller_spec.rb
371
343
  - spec/requests/spree/api/stock_locations_controller_spec.rb
372
344
  - spec/requests/spree/api/stock_movements_controller_spec.rb
373
- - spec/requests/spree/api/stock_transfers_controller_spec.rb
374
345
  - spec/requests/spree/api/store_credit_events_controller_spec.rb
375
346
  - spec/requests/spree/api/stores_controller_spec.rb
376
347
  - spec/requests/spree/api/taxonomies_controller_spec.rb
377
348
  - spec/requests/spree/api/taxons_controller_spec.rb
378
- - spec/requests/spree/api/transfer_items_controller_spec.rb
379
349
  - spec/requests/spree/api/unauthenticated_products_controller_spec.rb
380
350
  - spec/requests/spree/api/users_controller_spec.rb
381
351
  - spec/requests/spree/api/variants_controller_spec.rb
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- eval(File.read(File.dirname(__FILE__) + '/../common_spree_dependencies.rb'))
2
-
3
- gem 'solidus_core', path: '../core'
4
-
5
- gemspec
@@ -1,20 +0,0 @@
1
- module Spree
2
- module Api
3
- class StockTransfersController < Spree::Api::BaseController
4
- def receive
5
- authorize! :update, TransferItem
6
- @stock_transfer = Spree::StockTransfer.accessible_by(current_ability, :update).find_by!(number: params[:id])
7
- variant = Spree::Variant.accessible_by(current_ability, :show).find(params[:variant_id])
8
- @transfer_item = @stock_transfer.transfer_items.find_by(variant: variant)
9
- if @transfer_item.nil?
10
- logger.error("variant_not_in_stock_transfer")
11
- render "spree/api/errors/variant_not_in_stock_transfer", status: 422
12
- elsif @transfer_item.update_attributes(received_quantity: @transfer_item.received_quantity + 1)
13
- render 'spree/api/stock_transfers/receive', status: 200
14
- else
15
- invalid_resource!(@transfer_item)
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- module Spree
2
- module Api
3
- class TransferItemsController < Spree::Api::BaseController
4
- def create
5
- authorize! :create, TransferItem
6
- stock_transfer = Spree::StockTransfer.accessible_by(current_ability, :update).find_by(number: params[:stock_transfer_id])
7
- @transfer_item = stock_transfer.transfer_items.build(transfer_item_params)
8
- if @transfer_item.save
9
- respond_with(@transfer_item, status: 201, default_template: :show)
10
- else
11
- invalid_resource!(@transfer_item)
12
- end
13
- end
14
-
15
- def update
16
- authorize! :update, TransferItem
17
- @transfer_item = Spree::TransferItem.accessible_by(current_ability, :update).find(params[:id])
18
- if @transfer_item.update_attributes(transfer_item_params)
19
- respond_with(@transfer_item, status: 200, default_template: :show)
20
- else
21
- invalid_resource!(@transfer_item)
22
- end
23
- end
24
-
25
- def destroy
26
- authorize! :destroy, TransferItem
27
- @transfer_item = Spree::TransferItem.accessible_by(current_ability, :destroy).find(params[:id])
28
- if @transfer_item.destroy
29
- respond_with(@transfer_item, status: 200, default_template: :show)
30
- else
31
- invalid_resource!(@transfer_item)
32
- end
33
- end
34
-
35
- private
36
-
37
- def transfer_item_params
38
- params.require(:transfer_item).permit(permitted_transfer_item_attributes)
39
- end
40
- end
41
- end
42
- end
@@ -1 +0,0 @@
1
- json.error(Spree.t(:item_not_in_stock_transfer))
@@ -1,4 +0,0 @@
1
- json.(@stock_transfer, *stock_transfer_attributes)
2
- json.received_item do
3
- json.partial!("spree/api/transfer_items/transfer_item", transfer_item: @transfer_item)
4
- end
@@ -1,5 +0,0 @@
1
- json.(transfer_item, *transfer_item_attributes)
2
- json.variant do
3
- json.partial!("spree/api/variants/small", variant: transfer_item.variant)
4
- json.(transfer_item.variant, *transfer_item_variant_attributes)
5
- end
@@ -1 +0,0 @@
1
- json.partial!("spree/api/transfer_items/transfer_item", transfer_item: @transfer_item)
@@ -1,97 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Api::StockTransfersController do
5
-
6
- let!(:stock_transfer) { create(:stock_transfer_with_items) }
7
- let(:transfer_item) { stock_transfer.transfer_items.first }
8
-
9
- before do
10
- stub_authentication!
11
- end
12
-
13
- context "as a normal user" do
14
- describe "#receive" do
15
- it "cannot receive transfer items from a stock transfer" do
16
- post spree.receive_api_stock_transfer_path(stock_transfer), params: { variant_id: transfer_item.variant }
17
- expect(response.status).to eq 401
18
- end
19
- end
20
- end
21
-
22
- context "as an admin" do
23
- sign_in_as_admin!
24
-
25
- describe "#receive" do
26
- subject do
27
- post spree.receive_api_stock_transfer_path(stock_transfer), params: { variant_id: variant_id }
28
- end
29
-
30
- context "valid parameters" do
31
- let(:variant_id) { transfer_item.variant.to_param }
32
-
33
- it "can receive a transfer items from a stock transfer" do
34
- subject
35
- expect(response.status).to eq 200
36
- end
37
-
38
- it "increments the received quantity for the transfer_item" do
39
- expect { subject }.to change { transfer_item.reload.received_quantity }.by(1)
40
- end
41
-
42
- it "returns the received transfer item in the response" do
43
- subject
44
- expect(JSON.parse(response.body)["received_item"]["id"]).to eq transfer_item.id
45
- end
46
- end
47
-
48
- context "transfer item does not have stock in source location after ship" do
49
- let(:variant_id) { transfer_item.variant.to_param }
50
- let(:user) { create :user }
51
-
52
- before do
53
- stock_transfer.finalize(user)
54
- stock_transfer.ship(shipped_at: Time.current)
55
- stock_transfer.source_location.stock_item(transfer_item.variant_id).set_count_on_hand(0)
56
- end
57
-
58
- it "can still receive item" do
59
- expect { subject }.to change { transfer_item.reload.received_quantity }.by(1)
60
- end
61
- end
62
-
63
- context "transfer item has been fully received" do
64
- let(:variant_id) { transfer_item.variant.to_param }
65
-
66
- before do
67
- transfer_item.update_attributes!(expected_quantity: 1, received_quantity: 1)
68
- end
69
-
70
- it "returns a 422" do
71
- subject
72
- expect(response.status).to eq 422
73
- end
74
-
75
- it "returns a specific error message" do
76
- subject
77
- expect(JSON.parse(response.body)["errors"]["received_quantity"]).to eq ["must be less than or equal to 1"]
78
- end
79
- end
80
-
81
- context "variant is not in the transfer order" do
82
- let(:variant_id) { create(:variant).to_param }
83
-
84
- it "returns a 422" do
85
- subject
86
- expect(response.status).to eq 422
87
- end
88
-
89
- it "returns a specific error message" do
90
- subject
91
- expect(JSON.parse(response.body)["error"]).to eq Spree.t(:item_not_in_stock_transfer)
92
- end
93
- end
94
- end
95
- end
96
- end
97
- end
@@ -1,150 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Api::TransferItemsController do
5
-
6
- let!(:stock_transfer) { create(:stock_transfer_with_items) }
7
- let(:transfer_item) { stock_transfer.transfer_items.first }
8
-
9
- before do
10
- stub_authentication!
11
- end
12
-
13
- context "as a normal user" do
14
- describe "#create" do
15
- it "cannot create a transfer item" do
16
- post spree.api_stock_transfer_transfer_items_path(stock_transfer)
17
- expect(response.status).to eq 401
18
- end
19
- end
20
-
21
- describe "#update" do
22
- it "cannot update a transfer item" do
23
- put spree.api_stock_transfer_transfer_item_path(stock_transfer, transfer_item)
24
- expect(response.status).to eq 401
25
- end
26
- end
27
-
28
- describe "#destroy" do
29
- it "cannot delete a transfer item" do
30
- delete spree.api_stock_transfer_transfer_item_path(stock_transfer, transfer_item)
31
- expect(response.status).to eq 401
32
- end
33
- end
34
- end
35
-
36
- context "as an admin" do
37
- sign_in_as_admin!
38
-
39
- describe "#create" do
40
- subject do
41
- create_params = {
42
- transfer_item: {
43
- variant_id: variant_id,
44
- expected_quantity: 1
45
- }
46
- }
47
- post spree.api_stock_transfer_transfer_items_path(stock_transfer), params: create_params
48
- end
49
-
50
- context "valid parameters" do
51
- let(:variant) { create(:variant) }
52
- let(:variant_id) { variant.id }
53
-
54
- context "variant is available" do
55
- before do
56
- variant.stock_items.update_all(count_on_hand: 1)
57
- end
58
-
59
- it "can create a transfer item" do
60
- subject
61
- expect(response.status).to eq 201
62
- end
63
-
64
- it "creates a transfer item" do
65
- expect { subject }.to change { Spree::TransferItem.count }.by(1)
66
- end
67
- end
68
-
69
- context "variant is not available" do
70
- before do
71
- variant.stock_items.update_all(count_on_hand: 0)
72
- end
73
-
74
- it "returns an error status" do
75
- subject
76
- expect(response.status).to eq 422
77
- end
78
-
79
- it "does not create a transfer item" do
80
- expect { subject }.to_not change { Spree::TransferItem.count }
81
- end
82
- end
83
- end
84
- end
85
-
86
- describe "#update" do
87
- subject do
88
- update_params = { transfer_item: { received_quantity: received_quantity } }
89
- put spree.api_stock_transfer_transfer_item_path(stock_transfer, transfer_item), params: update_params
90
- end
91
-
92
- context "valid parameters" do
93
- let(:received_quantity) { 2 }
94
-
95
- it "can update a transfer item" do
96
- subject
97
- expect(response.status).to eq 200
98
- end
99
-
100
- it "updates the transfer item" do
101
- expect { subject }.to change { transfer_item.reload.received_quantity }.to(2)
102
- end
103
- end
104
-
105
- context "invalid parameters" do
106
- let(:received_quantity) { -5 }
107
-
108
- it "returns a 422" do
109
- subject
110
- expect(response.status).to eq 422
111
- end
112
-
113
- it "does not update the transfer item" do
114
- expect { subject }.to_not change { transfer_item.reload.received_quantity }
115
- end
116
- end
117
- end
118
-
119
- describe "#destroy" do
120
- subject { delete spree.api_stock_transfer_transfer_item_path(stock_transfer, transfer_item) }
121
-
122
- context "hasn't been finalized" do
123
- it "can delete a transfer item" do
124
- subject
125
- expect(response.status).to eq 200
126
- end
127
-
128
- it "deletes the transfer item" do
129
- expect { subject }.to change { Spree::TransferItem.count }.by(-1)
130
- end
131
- end
132
-
133
- context "has been finalized" do
134
- before do
135
- stock_transfer.update_attributes(finalized_at: Time.current)
136
- end
137
-
138
- it "returns an error status code" do
139
- subject
140
- expect(response.status).to eq 422
141
- end
142
-
143
- it "does not delete the transfer item" do
144
- expect { subject }.to_not change { Spree::TransferItem.count }
145
- end
146
- end
147
- end
148
- end
149
- end
150
- end