solidus_bactracs 3.5.1 → 4.0.0

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: 4e535e8a59bea282ee76d1fe01b99f738d19061abf29d1745e40bdcce792337e
4
- data.tar.gz: 75d5f6d07e1fd88e1f30c46418c674059b582aca33a884b16830be441d39a708
3
+ metadata.gz: 6f99389fef1884774ea48288c06c73ee6cd32a14f47b3486ac190a3c6288c9c3
4
+ data.tar.gz: 15db2dede75d78d1ff8024dd2d08f04c85eacdfdc63a9135e7d3b8ffc1acc076
5
5
  SHA512:
6
- metadata.gz: 39918c8782cd792f3fa091b2762dda89ea07db28a33a0598711fa561010a9eef293e2d7eb94c5f921f23a49a9afef5d995ee242f3a8fb4ce949f41a53d36f038
7
- data.tar.gz: b47a72baad881dfe7645addb7caadf4be5529d90d625b73bd32341d992d04ad110d56f7dc8730744a46ba55cb6edb45b1e3a19bbe6efe78a6363fbb2a17822c4
6
+ metadata.gz: a40e94cb272473e5634b09605f78aff10e0b7270a41e61202c00484351e76cdf5fe0e998de077864b89c73f38b2d6bd0317e734bd553addfa19a2aa306d6f8b3
7
+ data.tar.gz: b52d112aaffa6a71dd116f7eb78ec2e4bdd2e17f1b538a29a5ab16e739df48e261c5f83c7a419f8ab5a745b2ad1820d047f75ae7a758a9e3354d3378c1f94132
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.1.1
1
+ ruby 3.1.2
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
  This gem integrates [Bactracs](http://www.bactracs.com) with [Solidus](http://solidus.io). It
5
5
  enables your Solidus system to push shipment RMAs to the system.
6
6
 
7
+ > Currently this requires Solidus ~ 4.x
8
+
7
9
  > This integration was cloned from [spree_shipstation](https://github.com/DynamoMTL/spree_shipstation) to provide some consistency with other Solidus<-->Shipping related patterns.
8
10
 
9
11
  ## Installation
@@ -27,10 +27,7 @@ module SolidusBactracs
27
27
  if ThresholdVerifier.call(shipment)
28
28
  true
29
29
  else
30
- ::Spree::Event.fire(
31
- 'solidus_bactracs.api.sync_skipped',
32
- shipment: shipment,
33
- )
30
+ ::Spree::Bus.publish(:'solidus_bactracs.api.sync_skipped', shipment:)
34
31
 
35
32
  false
36
33
  end
@@ -23,19 +23,10 @@ module SolidusBactracs
23
23
  begin
24
24
  response = client.bulk_create_orders(shipments)
25
25
  rescue RateLimitedError => e
26
- ::Spree::Event.fire(
27
- 'solidus_bactracs.api.rate_limited',
28
- shipments: shipments,
29
- error: e,
30
- )
31
-
26
+ ::Spree::Bus.publish(:'solidus_bactracs.api.rate_limited', shipments: shipments, error: e)
32
27
  raise e
33
28
  rescue RequestError => e
34
- ::Spree::Event.fire(
35
- 'solidus_bactracs.api.sync_errored',
36
- shipments: shipments,
37
- error: e,
38
- )
29
+ ::Spree::Bus.publish(:'solidus_bactracs.api.sync_errored', shipments: shipments, error: e)
39
30
 
40
31
  raise e
41
32
  end
@@ -29,7 +29,7 @@ module SolidusBactracs
29
29
  Rails.logger.info({ event: 'success CreateRMA', rma: shipment.number, response: parse_rma_creation_response(rma_response, "Message")})
30
30
  shipment_synced(shipment)
31
31
  return true
32
- elsif rma_exists?(rma_response)
32
+ elsif rma_exists?(rma_response) or rma_fail?(rma_response)
33
33
  return false
34
34
  else
35
35
  clear_cache
@@ -89,7 +89,7 @@ module SolidusBactracs
89
89
 
90
90
  raise RequestError.from_response(@response) unless @response # just try again for @retries?
91
91
  if "false" == parse_authentication_response(@response, "Result")
92
- Rails.logger.warn({ event: 'bactracs auth failed', error: parse_authentication_response(@response, "Message")})
92
+ Rails.logger.error({ event: 'bactracs auth failed', error: parse_authentication_response(@response, "Message")})
93
93
  raise RequestError.from_response(@response)
94
94
  end
95
95
  sguid = parse_authentication_response(@response, "Message")
@@ -110,26 +110,28 @@ module SolidusBactracs
110
110
  end
111
111
 
112
112
  def rma_exists?(response)
113
+ if parse_rma_creation_response(response, "Message").match(/failed CreateRMA/)
114
+ Rails.logger.error({ event: 'bactracs failed CreateRMA', error: parse_rma_creation_response(response, "Message")})
115
+ return true
116
+ end
117
+ end
118
+
119
+ def rma_fail?(response)
113
120
  if parse_rma_creation_response(response, "Message").match(/rma .* already exists/)
114
- Rails.logger.warn({ event: 'bactracs failed CreateRMA', error: parse_rma_creation_response(response, "Message")})
121
+ Rails.logger.error({ event: 'bactracs failed CreateRMA', error: parse_rma_creation_response(response, "Message")})
115
122
  return true
116
123
  end
117
124
  end
118
125
 
126
+
119
127
  def shipment_synced(shipment)
120
128
  shipment.update_attribute(:bactracs_synced_at, Time.zone.now)
121
129
 
122
- ::Spree::Event.fire(
123
- 'solidus_bactracs.api.sync_completed',
124
- shipment: shipment
125
- )
130
+ ::Spree::Bus.publish(:'solidus_bactracs.api.sync_completed', shipment:)
126
131
  end
127
132
 
128
133
  def shipment_sync_failed(shipment)
129
- ::Spree::Event.fire(
130
- 'solidus_bactracs.api.sync_failed',
131
- shipment: shipment
132
- )
134
+ ::Spree::Bus.publish(:'solidus_bactracs.api.sync_failed', shipment:)
133
135
  end
134
136
  end
135
137
  end
@@ -69,8 +69,9 @@ module SolidusBactracs
69
69
  end
70
70
  end
71
71
  end
72
- Rails.logger.info(xml.to_s)
73
- xml
72
+ # Rails.logger.info(xml.to_s)
73
+ @xml = xml.to_xml.sub(/<to_xml\/>$/,'')
74
+ return @xml
74
75
  end
75
76
 
76
77
  def line_items_xml(xml: nil, line_item: nil, variant: nil, order: nil)
@@ -36,7 +36,7 @@ module SolidusBactracs
36
36
  # resp = @runner.call(:post, '/orders/createorders', [serialize(shipment)])
37
37
  resp = @runner.authenticated_call(shipment: shipment, serializer: @syncer.client.shipment_serializer)
38
38
  if resp
39
- @cursor += 1
39
+ @cursor += 1 if (a_shipment == @shipments[@cursor] || shipment == @shipments[@cursor])
40
40
  return resp
41
41
  end
42
42
  ensure
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBactracs
4
- VERSION = '3.5.1'
4
+ VERSION = '4.0.0'
5
5
  end
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.require_paths = ["lib"]
31
31
 
32
32
  spec.add_dependency 'httparty', '~> 0.18'
33
- spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 4']
33
+ spec.add_dependency 'solidus_core', ['>= 4.0'] # , '< 4']
34
34
  spec.add_dependency 'solidus_support', '~> 0.5'
35
35
 
36
36
  spec.add_development_dependency 'rails-controller-testing'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_bactracs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.1
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zeryab Ali
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-11-14 00:00:00.000000000 Z
12
+ date: 2024-05-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -31,20 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 2.0.0
35
- - - "<"
36
- - !ruby/object:Gem::Version
37
- version: '4'
34
+ version: '4.0'
38
35
  type: :runtime
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
38
  requirements:
42
39
  - - ">="
43
40
  - !ruby/object:Gem::Version
44
- version: 2.0.0
45
- - - "<"
46
- - !ruby/object:Gem::Version
47
- version: '4'
41
+ version: '4.0'
48
42
  - !ruby/object:Gem::Dependency
49
43
  name: solidus_support
50
44
  requirement: !ruby/object:Gem::Requirement