spree_api 3.7.3 → 3.7.4

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

Potentially problematic release.


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

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8699f7a4fd86c5f95a9f1a14df650c232f133cabb1c3ef9c671ffaffda57a428
4
- data.tar.gz: 7c94139485eceb5d332606589da8d46b23fc92e12d806e86c0e1476c52a13aff
3
+ metadata.gz: 89321cbba6d2a536bc10bdc0f5ec6606c298d0a0dc416732bba649804d2c0b60
4
+ data.tar.gz: cec9aa0ad43caf9a351be34395130cb53c7d288c9895efef698d24018a5af91c
5
5
  SHA512:
6
- metadata.gz: fd2fac5a6f916634e3e7b3bf01588ac85fc82b424a4ecd5d0861c0615746fb70d3d3e492494d4a7cf9b0a24eb16f2d56e83b244a1676d3acf849a0913a58f4b4
7
- data.tar.gz: 513dc4c202e1ade87be1f9414c10688b2cfd74a30ca8a66ec83ca7a127727b90e96841c1276b68bd166ff8b7ef7c7e742bbf0dc16919f637f0283371b77bfee8
6
+ metadata.gz: f1c7bd0a834493213eda8232b1420ec076020b511d65ccdcfc0306d11d34b343fd55adff1b842a823644f5806ee7e141f5fb0dadad8430bb63407c6c72753153
7
+ data.tar.gz: 4ea46ad49d205de2473192924bcc64d0c439d1e2c103ec36e37abc378a33a1a3aa554b484d01138a2ad926815976c0909e93c56cc199facb9be7e0b2dc0bd103
@@ -90,20 +90,16 @@ module Spree
90
90
  def remove_coupon_code
91
91
  spree_authorize! :update, spree_current_order, order_token
92
92
 
93
- coupon_code = if params[:coupon_code].present?
94
- params[:coupon_code]
95
- else
96
- spree_current_order.promotions.coupons.first&.code
97
- end
93
+ coupon_codes = select_coupon_codes
98
94
 
99
- return render_error_payload(Spree.t('v2.cart.no_coupon_code', scope: 'api')) if coupon_code.nil?
95
+ return render_error_payload(Spree.t('v2.cart.no_coupon_code', scope: 'api')) if coupon_codes.empty?
100
96
 
101
- result = coupon_handler.new(spree_current_order).remove(coupon_code)
97
+ result_errors = coupon_codes.count > 1 ? select_errors(coupon_codes) : select_error(coupon_codes)
102
98
 
103
- if result.error.blank?
99
+ if result_errors.blank?
104
100
  render_serialized_payload { serialized_current_order }
105
101
  else
106
- render_error_payload(result.error)
102
+ render_error_payload(result_errors)
107
103
  end
108
104
  end
109
105
 
@@ -167,6 +163,28 @@ module Spree
167
163
  params: { currency: spree_current_order.currency }
168
164
  ).serializable_hash
169
165
  end
166
+
167
+ def select_coupon_codes
168
+ params[:coupon_code].present? ? [params[:coupon_code]] : check_coupon_codes
169
+ end
170
+
171
+ def check_coupon_codes
172
+ spree_current_order.promotions.coupons.map(&:code)
173
+ end
174
+
175
+ def select_error(coupon_codes)
176
+ result = coupon_handler.new(spree_current_order).remove(coupon_codes.first)
177
+ result.error
178
+ end
179
+
180
+ def select_errors(coupon_codes)
181
+ results = []
182
+ coupon_codes.each do |coupon_code|
183
+ results << coupon_handler.new(spree_current_order).remove(coupon_code)
184
+ end
185
+
186
+ results.select(&:error)
187
+ end
170
188
  end
171
189
  end
172
190
  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.7.3
4
+ version: 3.7.4
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-05-15 00:00:00.000000000 Z
11
+ date: 2019-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonapi-rspec
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.7.3
33
+ version: 3.7.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 3.7.3
40
+ version: 3.7.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rabl
43
43
  requirement: !ruby/object:Gem::Requirement