solidus_api 2.4.2 → 2.5.0.beta1

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.

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