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 +4 -4
- data/.tool-versions +1 -1
- data/README.md +2 -0
- data/app/jobs/solidus_bactracs/api/sync_shipments_job.rb +1 -4
- data/lib/solidus_bactracs/api/batch_syncer.rb +2 -11
- data/lib/solidus_bactracs/api/request_runner.rb +13 -11
- data/lib/solidus_bactracs/api/shipment_serializer.rb +3 -2
- data/lib/solidus_bactracs/console_harness.rb +1 -1
- data/lib/solidus_bactracs/version.rb +1 -1
- data/solidus_bactracs.gemspec +1 -1
- metadata +4 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f99389fef1884774ea48288c06c73ee6cd32a14f47b3486ac190a3c6288c9c3
|
4
|
+
data.tar.gz: 15db2dede75d78d1ff8024dd2d08f04c85eacdfdc63a9135e7d3b8ffc1acc076
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a40e94cb272473e5634b09605f78aff10e0b7270a41e61202c00484351e76cdf5fe0e998de077864b89c73f38b2d6bd0317e734bd553addfa19a2aa306d6f8b3
|
7
|
+
data.tar.gz: b52d112aaffa6a71dd116f7eb78ec2e4bdd2e17f1b538a29a5ab16e739df48e261c5f83c7a419f8ab5a745b2ad1820d047f75ae7a758a9e3354d3378c1f94132
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 3.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::
|
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::
|
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::
|
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.
|
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.
|
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::
|
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::
|
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
|
data/solidus_bactracs.gemspec
CHANGED
@@ -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', ['>=
|
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:
|
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:
|
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:
|
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:
|
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
|