solidus_api 2.1.0.beta1 → 2.1.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.
Potentially problematic release.
This version of solidus_api might be problematic. Click here for more details.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4b0bb30392fb3f98f7b70a30a7fea33fafdff51
|
4
|
+
data.tar.gz: 235bdb122832d0a26a76f7fe524e123bde524c54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a6b41555532b56e6c5e500ace3c61609460762fff046d1f31002d922aeb2f18428d6b4f5f8dc6690d6cfdc4f76b159c25fd9401695a1558c3710d02b4c9e4ae
|
7
|
+
data.tar.gz: 64e5f7d0479aa233df96e13cb8c2b9c3420b8442b75993df038c94e52b3ab4bebfb027e2cd52f58159be8526d52853dd547cb5bac42f1c202d8a7a8f4d489110
|
@@ -8,6 +8,7 @@ module Spree
|
|
8
8
|
rescue_from Spree::Order::InsufficientStock, with: :insufficient_stock_error
|
9
9
|
|
10
10
|
include Spree::Core::ControllerHelpers::Order
|
11
|
+
|
11
12
|
# TODO: Remove this after deprecated usage in #update is removed
|
12
13
|
include Spree::Core::ControllerHelpers::PaymentParameters
|
13
14
|
|
@@ -15,12 +16,6 @@ module Spree
|
|
15
16
|
skip_before_action :set_current_order
|
16
17
|
|
17
18
|
def next
|
18
|
-
if @order.confirm?
|
19
|
-
Spree::Deprecation.warn "Using Spree::Api::CheckoutsController#next to transition to complete is deprecated. Please use #complete instead of #next.", caller
|
20
|
-
complete
|
21
|
-
return
|
22
|
-
end
|
23
|
-
|
24
19
|
authorize! :update, @order, order_token
|
25
20
|
if !expected_total_ok?(params[:expected_total])
|
26
21
|
respond_with(@order, default_template: 'spree/api/orders/expected_total_mismatch', status: 400)
|
@@ -93,16 +88,6 @@ module Spree
|
|
93
88
|
def massaged_params
|
94
89
|
massaged_params = params.deep_dup
|
95
90
|
|
96
|
-
if params[:payment_source].present?
|
97
|
-
Spree::Deprecation.warn("Passing payment_source is deprecated. Send source parameters inside payments_attributes[:source_attributes].", caller)
|
98
|
-
move_payment_source_into_payments_attributes(massaged_params)
|
99
|
-
end
|
100
|
-
|
101
|
-
if params[:order] && params[:order][:existing_card].present?
|
102
|
-
Spree::Deprecation.warn("Passing order[:existing_card] is deprecated. Send existing_card_id inside of payments_attributes[:source_attributes].", caller)
|
103
|
-
move_existing_card_into_payments_attributes(massaged_params)
|
104
|
-
end
|
105
|
-
|
106
91
|
set_payment_parameters_amount(massaged_params, @order)
|
107
92
|
|
108
93
|
massaged_params
|
@@ -221,30 +221,6 @@ module Spree
|
|
221
221
|
expect(json_response['payments'][0]['payment_method']['name']).to eq(@payment_method.name)
|
222
222
|
expect(json_response['payments'][0]['amount']).to eq(order.total.to_s)
|
223
223
|
end
|
224
|
-
|
225
|
-
context 'with deprecated payment_source parameters' do
|
226
|
-
let(:params) do
|
227
|
-
{
|
228
|
-
id: order.to_param,
|
229
|
-
order_token: order.guest_token,
|
230
|
-
order: {
|
231
|
-
payments_attributes: [
|
232
|
-
{ payment_method_id: @payment_method.id.to_s }
|
233
|
-
]
|
234
|
-
},
|
235
|
-
payment_source: { @payment_method.id.to_s => attributes_for(:credit_card) }
|
236
|
-
}
|
237
|
-
end
|
238
|
-
|
239
|
-
it "succeeds" do
|
240
|
-
Spree::Deprecation.silence do
|
241
|
-
api_put(:update, params)
|
242
|
-
end
|
243
|
-
expect(response.status).to eq(200)
|
244
|
-
expect(json_response['payments'][0]['payment_method']['name']).to eq(@payment_method.name)
|
245
|
-
expect(json_response['payments'][0]['amount']).to eq(order.total.to_s)
|
246
|
-
end
|
247
|
-
end
|
248
224
|
end
|
249
225
|
|
250
226
|
context 'when source is missing attributes' do
|
@@ -277,36 +253,6 @@ module Spree
|
|
277
253
|
expect(cc_errors).to include("Year is not a number")
|
278
254
|
expect(cc_errors).to include("Verification Value can't be blank")
|
279
255
|
end
|
280
|
-
|
281
|
-
context 'with deprecated payment_source parameters' do
|
282
|
-
let(:params) do
|
283
|
-
{
|
284
|
-
id: order.to_param,
|
285
|
-
order_token: order.guest_token,
|
286
|
-
order: {
|
287
|
-
payments_attributes: [
|
288
|
-
{ payment_method_id: @payment_method.id.to_s }
|
289
|
-
]
|
290
|
-
},
|
291
|
-
payment_source: {
|
292
|
-
@payment_method.id.to_s => { name: "Spree" }
|
293
|
-
}
|
294
|
-
}
|
295
|
-
end
|
296
|
-
|
297
|
-
it 'returns errors' do
|
298
|
-
Spree::Deprecation.silence do
|
299
|
-
api_put(:update, params)
|
300
|
-
end
|
301
|
-
|
302
|
-
expect(response.status).to eq(422)
|
303
|
-
cc_errors = json_response['errors']['payments.Credit Card']
|
304
|
-
expect(cc_errors).to include("Card Number can't be blank")
|
305
|
-
expect(cc_errors).to include("Month is not a number")
|
306
|
-
expect(cc_errors).to include("Year is not a number")
|
307
|
-
expect(cc_errors).to include("Verification Value can't be blank")
|
308
|
-
end
|
309
|
-
end
|
310
256
|
end
|
311
257
|
|
312
258
|
context 'reusing a credit card' do
|
@@ -348,35 +294,6 @@ module Spree
|
|
348
294
|
expect(response.status).to eq 200
|
349
295
|
expect(order.credit_cards).to match_array [credit_card]
|
350
296
|
end
|
351
|
-
|
352
|
-
context 'with deprecated existing_card parameters' do
|
353
|
-
let(:params) do
|
354
|
-
{
|
355
|
-
id: order.to_param,
|
356
|
-
order_token: order.guest_token,
|
357
|
-
order: {
|
358
|
-
existing_card: credit_card.id.to_s
|
359
|
-
},
|
360
|
-
cvc_confirm: '456'
|
361
|
-
}
|
362
|
-
end
|
363
|
-
|
364
|
-
it 'succeeds' do
|
365
|
-
# unfortunately the credit card gets reloaded by `@order.next` before
|
366
|
-
# the controller action finishes so this is the best way I could think
|
367
|
-
# of to test that the verification_value gets set.
|
368
|
-
expect_any_instance_of(Spree::CreditCard).to(
|
369
|
-
receive(:verification_value=).with('456').and_call_original
|
370
|
-
)
|
371
|
-
|
372
|
-
Spree::Deprecation.silence do
|
373
|
-
api_put(:update, params)
|
374
|
-
end
|
375
|
-
|
376
|
-
expect(response.status).to eq 200
|
377
|
-
expect(order.credit_cards).to match_array [credit_card]
|
378
|
-
end
|
379
|
-
end
|
380
297
|
end
|
381
298
|
|
382
299
|
it "returns the order if the order is already complete" do
|
@@ -451,50 +368,40 @@ module Spree
|
|
451
368
|
end
|
452
369
|
end
|
453
370
|
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
subject do
|
460
|
-
if action == :next
|
461
|
-
Spree::Deprecation.silence do
|
462
|
-
api_put action, params
|
463
|
-
end
|
464
|
-
else
|
465
|
-
api_put action, params
|
466
|
-
end
|
467
|
-
end
|
371
|
+
context "complete" do
|
372
|
+
context "with order in confirm state" do
|
373
|
+
subject do
|
374
|
+
api_put :complete, params
|
375
|
+
end
|
468
376
|
|
469
|
-
|
470
|
-
|
377
|
+
let(:params) { { id: order.to_param, order_token: order.guest_token } }
|
378
|
+
let(:order) { create(:order_with_line_items) }
|
471
379
|
|
472
|
-
|
473
|
-
|
474
|
-
|
380
|
+
before do
|
381
|
+
order.update_column(:state, "confirm")
|
382
|
+
end
|
475
383
|
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
384
|
+
it "can transition from confirm to complete" do
|
385
|
+
allow_any_instance_of(Spree::Order).to receive_messages(payment_required?: false)
|
386
|
+
subject
|
387
|
+
expect(json_response['state']).to eq('complete')
|
388
|
+
expect(response.status).to eq(200)
|
389
|
+
end
|
482
390
|
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
391
|
+
it "returns a sensible error when no payment method is specified" do
|
392
|
+
# api_put :complete, :id => order.to_param, :order_token => order.token, :order => {}
|
393
|
+
subject
|
394
|
+
expect(json_response["errors"]["base"]).to include(Spree.t(:no_payment_found))
|
395
|
+
end
|
488
396
|
|
489
|
-
|
490
|
-
|
397
|
+
context "with mismatched expected_total" do
|
398
|
+
let(:params) { super().merge(expected_total: order.total + 1) }
|
491
399
|
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
end
|
400
|
+
it "returns an error if expected_total is present and does not match actual total" do
|
401
|
+
# api_put :complete, :id => order.to_param, :order_token => order.token, :expected_total => order.total + 1
|
402
|
+
subject
|
403
|
+
expect(response.status).to eq(400)
|
404
|
+
expect(json_response['errors']['expected_total']).to include(Spree.t(:expected_total_mismatch, scope: 'api.order'))
|
498
405
|
end
|
499
406
|
end
|
500
407
|
end
|
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.1.0.
|
4
|
+
version: 2.1.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.1.0.
|
19
|
+
version: 2.1.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: 2.1.0.
|
26
|
+
version: 2.1.0.rc1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rabl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|