spree_cm_commissioner 2.7.1.pre.pre6 → 2.7.1.pre.pre8

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: f88085ac9f274a24587f64dca172c3219d84b76e02385419388bc84196bdbc2e
4
- data.tar.gz: 3865b929388b20b69d3a641bbdf2695ae79055e5636c5fed7033bc297b511ff5
3
+ metadata.gz: aead7dbe0a1723c8c08996fe74ba64198a19134aeac915fb77f45b96979ce9a8
4
+ data.tar.gz: c591f41addd0555cd853de9cd10a3326a72a23e1069429f20f4564582b5a4b6f
5
5
  SHA512:
6
- metadata.gz: ec9862ee95fb74dc2031f22534084dbbfe01c7fd5351a248014f5a8011a97fd990d0145b1536d697877face277480bdc837fa126e64b73a41039a55268072182
7
- data.tar.gz: 4b84c53d6a14a05702b5eaa78a76b1eb6f80471f15b4cc95bee9fef3772f00abe49f40c9c9d0cd78ec7761d5aa012c1d4546931a121e7e8ae2e264e7788e5bb2
6
+ metadata.gz: 608c9766931ce6858cacd8118d1c9c384f3a013724136226ef24d3b796b0bfd7890c72541c8716d500814226daedbe762bac6d2e20ca8c158b4e53c112fb9346
7
+ data.tar.gz: 3ca15cc172c6c7219eb56309fc7665fd8775692770e37dfec4325fdfe3c605fa7e2eca80dd5f6e8efcb6bb7ec2dcd02396a3ba629b776a38aafd7240267769c6
data/Gemfile.lock CHANGED
@@ -34,7 +34,7 @@ GIT
34
34
  PATH
35
35
  remote: .
36
36
  specs:
37
- spree_cm_commissioner (2.7.1.pre.pre6)
37
+ spree_cm_commissioner (2.7.1.pre.pre8)
38
38
  activerecord-multi-tenant
39
39
  activerecord_json_validator (~> 2.1, >= 2.1.3)
40
40
  aws-sdk-cloudfront
@@ -14,14 +14,25 @@ module Spree
14
14
  "#{Digest::SHA256.hexdigest(permitted_preview_params.to_json)}:" \
15
15
  "#{pricing_models_updated_at.to_i}"
16
16
 
17
- result = Rails.cache.fetch(cache_key, expires_in: 60.seconds) do
18
- SpreeCmCommissioner::PricingModels::Preview.call(order_context: order_context)
17
+ cached_result = Rails.cache.fetch(cache_key, expires_in: 60.seconds) do
18
+ result = SpreeCmCommissioner::PricingModels::Preview.call(order_context: order_context)
19
+ if result.success?
20
+ {
21
+ success: true,
22
+ payload: serialize_resource(result.value[:pricing_preview]).as_json
23
+ }
24
+ else
25
+ {
26
+ success: false,
27
+ error: result.error.to_s
28
+ }
29
+ end
19
30
  end
20
31
 
21
- if result.success?
22
- render_serialized_payload { serialize_resource(result.value[:pricing_preview]) }
32
+ if cached_result[:success]
33
+ render_serialized_payload { cached_result[:payload] }
23
34
  else
24
- render_error_payload(result.error, 422)
35
+ render_error_payload(cached_result[:error], 422)
25
36
  end
26
37
  rescue ArgumentError => e
27
38
  render_error_payload(e.message, 422)
@@ -6,7 +6,10 @@ module Spree
6
6
  # GET /api/v2/tenant/pricing_previews
7
7
  def index
8
8
  permitted_preview_params = params.permit(SpreeCmCommissioner::PricingModels::OrderContext::PREVIEW_PERMITTED_PARAMS)
9
- order_context = SpreeCmCommissioner::PricingModels::OrderContext.load!(permitted_preview_params[:order_context])
9
+ order_context = SpreeCmCommissioner::PricingModels::OrderContext.load!(
10
+ permitted_preview_params[:order_context]&.merge(tenant_id: current_tenant.id)
11
+ )
12
+
10
13
  pricing_models_updated_at = SpreeCmCommissioner::PricingModel.joins(:vendor)
11
14
  .where(spree_vendors: { tenant_id: current_tenant.id })
12
15
  .maximum(:updated_at)
@@ -14,14 +17,25 @@ module Spree
14
17
  "#{Digest::SHA256.hexdigest(permitted_preview_params.to_json)}:" \
15
18
  "#{pricing_models_updated_at.to_i}"
16
19
 
17
- result = Rails.cache.fetch(cache_key, expires_in: 60.seconds) do
18
- SpreeCmCommissioner::PricingModels::Preview.call(order_context: order_context)
20
+ cached_result = Rails.cache.fetch(cache_key, expires_in: 60.seconds) do
21
+ result = SpreeCmCommissioner::PricingModels::Preview.call(order_context: order_context)
22
+ if result.success?
23
+ {
24
+ success: true,
25
+ payload: serialize_resource(result.value[:pricing_preview]).as_json
26
+ }
27
+ else
28
+ {
29
+ success: false,
30
+ error: result.error.to_s
31
+ }
32
+ end
19
33
  end
20
34
 
21
- if result.success?
22
- render_serialized_payload { serialize_resource(result.value[:pricing_preview]) }
35
+ if cached_result[:success]
36
+ render_serialized_payload { cached_result[:payload] }
23
37
  else
24
- render_error_payload(result.error, 422)
38
+ render_error_payload(cached_result[:error], 422)
25
39
  end
26
40
  rescue ArgumentError => e
27
41
  render_error_payload(e.message, 422)
@@ -4,6 +4,9 @@ module SpreeCmCommissioner
4
4
  prepend ::Spree::ServiceModule::Base
5
5
 
6
6
  def call(order:)
7
+ return failure(:order_is_not_persisted) unless order.persisted?
8
+ return failure(:order_not_completed) unless order.completed?
9
+
7
10
  order_context = OrderContext.build_from_context(fallback_order: order)
8
11
 
9
12
  preview_result = Preview.call(order_context: order_context)
@@ -20,14 +20,17 @@ module SpreeCmCommissioner
20
20
  end
21
21
 
22
22
  def self.load!(params)
23
+ raise ArgumentError, 'order_context is required' if params.nil?
24
+
23
25
  params = params.to_h.deep_symbolize_keys
24
26
  number = params[:number].presence
25
27
  token = params[:token].presence
28
+ tenant_id = params[:tenant_id].presence
26
29
 
27
30
  raise ArgumentError, 'order_context.number is required' if number.blank?
28
31
  raise ArgumentError, 'order_context.token is required' if token.blank?
29
32
 
30
- order = Spree::Order.find_by(number: number, token: token)
33
+ order = Spree::Order.find_by(number: number, token: token, tenant_id: tenant_id)
31
34
  raise ArgumentError, "order #{number} not found" if order.nil?
32
35
 
33
36
  build_from_context(attributes: params, fallback_order: order)
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.7.1-pre6'.freeze
2
+ VERSION = '2.7.1-pre8'.freeze
3
3
 
4
4
  module_function
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1.pre.pre6
4
+ version: 2.7.1.pre.pre8
5
5
  platform: ruby
6
6
  authors:
7
7
  - You