spree_api 5.2.1 → 5.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ba0be5af358039bd0cafd9cc3bfdb22fb0a9281644f98aa45b97e8b9d455b49
4
- data.tar.gz: 25e7a3bd917c6d45345632643e93fa932e28e53e6f147d9580cf321798e0219d
3
+ metadata.gz: 0af82d85dc62f6abf26a1d3a1e6918937c6b5c25a9cf5da68e100d80ea072db1
4
+ data.tar.gz: '09e9ad23739c736a02e3604df01452dd04414dcbe2446c7074cc312fe1fd0d06'
5
5
  SHA512:
6
- metadata.gz: 2def7d4f89188b0aa6782af5d637b465344fa3e09480525fd6109bdcd7fad11db48048cf6c0d2e097e41367e91e07d8e87307d80377e3bf3b69509081314153d
7
- data.tar.gz: 5b770305851e88aa72cc18c077b51f4f3fdb5571a459cae86ac12c2b8485fea811dded0b36ebb0da95bfae6110926518aa1f7cd4d287aa25c11a04f4c481d4b9
6
+ metadata.gz: e80436d79b176e2e917a3e9140cfc06843a9399e33ce72dfc85b6370acd7a1b41b7ae07293b9aa9fb18d386ed15674babdfd5689c1febf23290aca47d6345283
7
+ data.tar.gz: 8ce901294b6cdad98732a753fb76df9cfc94f2749502f3f3baba458679fd30b60f4205ac22cc83702752593b1cf8d6e2263b5111659e4cf1f5c2715806d14081
@@ -120,6 +120,7 @@ module Spree
120
120
  result_errors = coupon_codes.count > 1 ? select_errors(coupon_codes) : select_error(coupon_codes)
121
121
 
122
122
  if result_errors.blank?
123
+ spree_current_order.reload
123
124
  render_serialized_payload { serialized_current_order }
124
125
  else
125
126
  render_error_payload(result_errors)
@@ -53,10 +53,10 @@ module Spree
53
53
  # serializers
54
54
  storefront_address_serializer: 'Spree::V2::Storefront::AddressSerializer',
55
55
  storefront_cart_serializer: 'Spree::V2::Storefront::CartSerializer',
56
- storefront_cms_page_serializer: 'Spree::V2::Storefront::CmsPageSerializer', # LEGACY
56
+ storefront_cms_page_serializer: nil, # LEGACY
57
57
  storefront_credit_card_serializer: 'Spree::V2::Storefront::CreditCardSerializer',
58
58
  storefront_country_serializer: 'Spree::V2::Storefront::CountrySerializer',
59
- storefront_menu_serializer: 'Spree::V2::Storefront::MenuSerializer', # LEGACY
59
+ storefront_menu_serializer: nil, # LEGACY
60
60
  storefront_user_serializer: 'Spree::V2::Storefront::UserSerializer',
61
61
  storefront_shipment_serializer: 'Spree::V2::Storefront::ShipmentSerializer',
62
62
  storefront_taxon_serializer: 'Spree::V2::Storefront::TaxonSerializer',
data/lib/spree/api.rb CHANGED
@@ -3,6 +3,51 @@ require 'spree/core'
3
3
  module Spree
4
4
  module Api
5
5
  end
6
+
7
+ # API dependencies accessor for cleaner access to API dependencies
8
+ #
9
+ # @example Getting a dependency (returns resolved class)
10
+ # Spree.api.storefront_coupon_handler.call(order: order, coupon_code: code)
11
+ #
12
+ # @example Setting a dependency
13
+ # Spree.api.storefront_coupon_handler = MyApp::CouponHandler
14
+ #
15
+ # @return [Spree::ApiDependenciesAccessor] the API dependencies accessor
16
+ def self.api
17
+ @api_accessor ||= ApiDependenciesAccessor.new
18
+ end
19
+
20
+ class ApiDependenciesAccessor
21
+ def method_missing(method_name, *args, &block)
22
+ base_name = method_name.to_s.chomp('=').to_sym
23
+
24
+ return super unless api_dependency?(base_name)
25
+
26
+ if method_name.to_s.end_with?('=')
27
+ Spree::Api::Dependencies.send(method_name, args.first)
28
+ else
29
+ # Returns resolved class
30
+ Spree::Api::Dependencies.send("#{method_name}_class")
31
+ end
32
+ end
33
+
34
+ def respond_to_missing?(method_name, include_private = false)
35
+ base_name = method_name.to_s.chomp('=').to_sym
36
+ api_dependency?(base_name) || super
37
+ end
38
+
39
+ # Direct access to raw dependencies object for backwards compatibility
40
+ def dependencies
41
+ Spree::Api::Dependencies
42
+ end
43
+
44
+ private
45
+
46
+ def api_dependency?(name)
47
+ defined?(Spree::Api::Dependencies) &&
48
+ Spree::Api::Dependencies.class::INJECTION_POINTS.include?(name)
49
+ end
50
+ end
6
51
  end
7
52
 
8
53
  require 'spree/api/engine'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.1
4
+ version: 5.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Bigg
@@ -101,14 +101,14 @@ dependencies:
101
101
  requirements:
102
102
  - - '='
103
103
  - !ruby/object:Gem::Version
104
- version: 5.2.1
104
+ version: 5.2.2
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - '='
110
110
  - !ruby/object:Gem::Version
111
- version: 5.2.1
111
+ version: 5.2.2
112
112
  description: Spree's API
113
113
  email:
114
114
  - hello@spreecommerce.org
@@ -377,9 +377,9 @@ licenses:
377
377
  - BSD-3-Clause
378
378
  metadata:
379
379
  bug_tracker_uri: https://github.com/spree/spree/issues
380
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.2.1
380
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.2.2
381
381
  documentation_uri: https://docs.spreecommerce.org/
382
- source_code_uri: https://github.com/spree/spree/tree/v5.2.1
382
+ source_code_uri: https://github.com/spree/spree/tree/v5.2.2
383
383
  rdoc_options: []
384
384
  require_paths:
385
385
  - lib