spree_cm_commissioner 2.5.0.pre.pre4 → 2.5.0.pre.pre7

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: ba91dacd894816a0b4105c032a0550371aeab884b3f344ebe554758c3556a0a0
4
- data.tar.gz: 077d13272adb0ced0f246dc9d48d5d3b9ae56a95beaa74a6d2cd6fc7f134f7e1
3
+ metadata.gz: cd65c0e3f9c574eac1886f0dd7872516ee4b06ce9de12c91cd56e9101ea37914
4
+ data.tar.gz: 223b2e1bc19876a282cf764cbfd45da3aeb3e13b671a9bafeaf697bed5938380
5
5
  SHA512:
6
- metadata.gz: 8a990d42d6cf09c9304971a41efb74525761de29ee6cefe04e1a7b0dbe2831e9ad40f52f229ca463ee905ed1e039b1562daa2eace5307c4dd3eb6f725488e671
7
- data.tar.gz: 309280aeb9987456b2788be11cdad59095da58b2b258e294477cfb5edb63323b4ee6d3fd8ae03f845fd79db0d0186ff54d64f6cb406567c2a284dc26454446f8
6
+ metadata.gz: 959b4855a961019439474b8dc5fb987650e65ecb96c6e3b9a12355d3487d6d067c5824317cc825c882c858cee64c23e21695448999c3caf6b852e7c7d73fbfdc
7
+ data.tar.gz: c3fe124a224836d629669bf723d80162253e1e732512870d1ddfbaf8bd2c115bb081eb058e7f9dc2acc1bdbe23b425bf9ad19ad2134d31c523c11163016eee0f
data/Gemfile.lock CHANGED
@@ -34,7 +34,7 @@ GIT
34
34
  PATH
35
35
  remote: .
36
36
  specs:
37
- spree_cm_commissioner (2.5.0.pre.pre4)
37
+ spree_cm_commissioner (2.5.0.pre.pre7)
38
38
  activerecord-multi-tenant
39
39
  activerecord_json_validator (~> 2.1, >= 2.1.3)
40
40
  aws-sdk-cloudfront
@@ -23,9 +23,8 @@ module SpreeCmCommissioner
23
23
  private
24
24
 
25
25
  def adjust_inventory_items_async(variant_id, quantity)
26
- args = { variant_id: variant_id, quantity: quantity }
27
- CmAppLogger.log(label: "#{self.class.name}#adjust_inventory_items_async", data: args) do
28
- SpreeCmCommissioner::Stock::InventoryItemsAdjusterJob.perform_later(**args)
26
+ CmAppLogger.log(label: "#{self.class.name}#adjust_inventory_items_async", data: { variant_id: variant_id, quantity: quantity }) do
27
+ SpreeCmCommissioner::Stock::InventoryItemsAdjusterJob.perform_later(variant_id: variant_id, quantity: quantity)
29
28
  end
30
29
  end
31
30
  end
@@ -2,10 +2,7 @@ module SpreeCmCommissioner
2
2
  module Stock
3
3
  class InventoryItemsAdjusterJob < ApplicationUniqueJob
4
4
  def perform(options = {})
5
- variant = Spree::Variant.find_by(id: options[:variant_id])
6
-
7
- # potentially the variant was deleted during the job wait time, we just skip in that case.
8
- return if variant.blank?
5
+ variant = Spree::Variant.find(options[:variant_id])
9
6
 
10
7
  SpreeCmCommissioner::Stock::InventoryItemsAdjuster.call(variant: variant, quantity: options[:quantity])
11
8
  end
data/lib/cm_app_logger.rb CHANGED
@@ -1,18 +1,18 @@
1
1
  # lib/cm_app_logger.rb
2
2
  module CmAppLogger
3
3
  def self.log(label:, data: nil)
4
- message = { label: label, data: data }
4
+ message = { label: label, data: safe_serialize(data) }
5
5
  start_time = Time.current
6
6
  Rails.logger.info(message.to_json)
7
7
 
8
8
  return unless block_given?
9
9
 
10
- # Capture the blocks return value and return it to preserve existing behavior for callers expecting that value.
10
+ # Capture the block's return value and return it to preserve existing behavior for callers expecting that value.
11
11
  block_result = yield
12
12
 
13
13
  message[:start_time] = start_time
14
14
  message[:duration_ms] = (Time.current - start_time) * 1000
15
- message[:result] = block_result
15
+ message[:result] = safe_serialize(block_result)
16
16
  Rails.logger.info(message.to_json)
17
17
  block_result
18
18
  end
@@ -20,9 +20,26 @@ module CmAppLogger
20
20
  def self.error(label:, data: nil)
21
21
  message = {
22
22
  label: label,
23
- data: data
23
+ data: safe_serialize(data)
24
24
  }
25
25
 
26
26
  Rails.logger.error(message.to_json)
27
27
  end
28
+
29
+ def self.safe_serialize(obj)
30
+ case obj
31
+ when Hash
32
+ obj.transform_values { |v| safe_serialize(v) }
33
+ when Array
34
+ obj.map { |item| safe_serialize(item) }
35
+ when NilClass, TrueClass, FalseClass, Numeric, String, Symbol
36
+ obj
37
+ when ActiveJob::Base
38
+ # Don't serialize the entire job object - just its class and ID
39
+ { job_class: obj.class.name, job_id: obj.job_id }
40
+ else
41
+ # For other objects, try to_s as fallback
42
+ obj.respond_to?(:id) ? { class: obj.class.name, id: obj.id } : obj.to_s
43
+ end
44
+ end
28
45
  end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '2.5.0-pre4'.freeze
2
+ VERSION = '2.5.0-pre7'.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.5.0.pre.pre4
4
+ version: 2.5.0.pre.pre7
5
5
  platform: ruby
6
6
  authors:
7
7
  - You