solidus_bactracs 3.1.2 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57358a842b15f8f01b4ef06b6e665d3da2d1e71c2cb9d0c963a53cf790329431
4
- data.tar.gz: 50ec2b26961894f93f194047564ffc09df92337fcbcc2ef924d241dda879bb84
3
+ metadata.gz: e67ac9974b0c0fb6e097172f14667e73c99c5d4ccd948423e48dcdd5820becde
4
+ data.tar.gz: a7fb4b01e858278ab263373d087aa5a4c63222f9389d2f2a8087566e50f42270
5
5
  SHA512:
6
- metadata.gz: 61b6d5945b5bea4a67e85b44bb2cd719740466d0737599d1e77bb4aad035ce488e7cbb0df89ddedf1307d958dff901f01d0c9f66bb2006d4df06deb62836473e
7
- data.tar.gz: 9db512ac8470045e746d5afada89e2634845d175c4bbb45aca29cb6196d8199c5e65aeef0123cd0e5b75e1cfb6b483cbc0e186143e26fedfc5ceadb81b19089d
6
+ metadata.gz: d6232847569c2a6166959fcfdd3791597d8e32aaa71f68def3d4eff77b8b8269857c0973143f5c8af3b33cf47ffcd326b209a43f8c36d6ae07c0542db3255205
7
+ data.tar.gz: d61675ac31273aa2751b300350d3b3b20ce8d4c23c62c39192a9a90c489762c4d6ff5179abefbcb53ce17031c4f9a68c976663599b49194078a3857d49cf6116
@@ -21,16 +21,17 @@ module SolidusBactracs
21
21
  end
22
22
 
23
23
  def query_shipments
24
- shipments = SolidusBactracs::Shipment::PendingApiSyncQuery.apply(
25
- ::Spree::Shipment
24
+ shipments = SolidusBactracs::Shipment::PendingApiSyncQuery.apply(all_elegible_shipments)
25
+ end
26
+
27
+ def all_elegible_shipments(skus: SolidusBactracs.config.shippable_skus, state: :ready)
28
+ ::Spree::Shipment
26
29
  .joins(inventory_units: [:variant])
27
- .where("spree_variants.sku" => SolidusBactracs.config.shippable_skus)
28
- .where("spree_shipments.state" => :ready)
30
+ .where("spree_variants.sku" => skus)
31
+ .where("spree_shipments.state" => state)
29
32
  .where(bactracs_synced_at: nil)
30
33
  .distinct
31
- )
32
34
  end
33
35
  end
34
36
  end
35
37
  end
36
-
@@ -13,18 +13,18 @@ module SolidusBactracs
13
13
  @retries = SolidusBactracs.configuration.api_retries
14
14
  end
15
15
 
16
- def authenticated_call(method: nil, path: nil, serializer: nil, shipment: nil, count: 0)
16
+ def authenticated_call(serializer: nil, shipment: nil, method: :post, path: '/webservices/rma/rmaservice.asmx', count: 0)
17
17
  if count <= @retries
18
18
  sguid = authenticate! rescue nil
19
19
 
20
20
  if !sguid.presence
21
21
  clear_cache
22
22
  count += 1
23
- self.authenticated_call(method: :post, path: '/webservices/rma/rmaservice.asmx', serializer: serializer, shipment: shipment, count: count)
23
+ self.authenticated_call(method: method, path: path, serializer: serializer, shipment: shipment, count: count)
24
24
  else
25
25
  params = serializer.call(shipment, sguid)
26
26
 
27
- rma_response = call(method: :post, path: path, params: params)
27
+ rma_response = call(method: method, path: path, params: params)
28
28
  if create_rma_success?(rma_response)
29
29
  Rails.logger.info({ event: 'success CreateRMA', rma: shipment.number, response: parse_rma_creation_response(rma_response, "Message")})
30
30
  shipment_synced(shipment)
@@ -35,11 +35,12 @@ module SolidusBactracs
35
35
  clear_cache
36
36
  count += 1
37
37
  Rails.logger.warn({ event: 'bactracs failed CreateRMA', error: parse_rma_creation_response(rma_response, "Message")})
38
- self.authenticated_call(method: :post, path: '/webservices/rma/rmaservice.asmx', serializer: serializer, shipment: shipment, count: count)
38
+ self.authenticated_call(method: method, path: path, serializer: serializer, shipment: shipment, count: count)
39
39
  end
40
40
  end
41
41
  else
42
42
  shipment_sync_failed(shipment)
43
+ return false
43
44
  end
44
45
  end
45
46
 
@@ -77,7 +78,7 @@ module SolidusBactracs
77
78
  @response = nil
78
79
  end
79
80
 
80
- def authenticate!()
81
+ def authenticate!
81
82
  unless @username.present? || @password.present? || @api_base.present?
82
83
  raise "Credentials not defined for Authentication"
83
84
  end
@@ -110,7 +111,7 @@ module SolidusBactracs
110
111
 
111
112
  def rma_exists?(response)
112
113
  if parse_rma_creation_response(response, "Message").match(/rma .* already exists/)
113
- Rails.logger.warn({ event: 'bactracs failed CreateRMA', error: parse_rma_creation_response(rma_response, "Message")})
114
+ Rails.logger.warn({ event: 'bactracs failed CreateRMA', error: parse_rma_creation_response(response, "Message")})
114
115
  return true
115
116
  end
116
117
  end
@@ -0,0 +1,53 @@
1
+ module SolidusBactracs
2
+ class ConsoleHarness
3
+ attr_reader :runner, :syncer, :sync, :shipments, :shipments_elegible
4
+
5
+ attr_accessor :cursor, :batch
6
+
7
+ def initialize
8
+ @runner = SolidusBactracs::Api::RequestRunner.new
9
+ @syncer = SolidusBactracs::Api::BatchSyncer.from_config
10
+ @sync = SolidusBactracs::Api::ScheduleShipmentSyncsJob.new
11
+ @shipments = SolidusBactracs::Api::ScheduleShipmentSyncsJob.new.query_shipments
12
+ @shipments_elegible = SolidusBactracs::Api::ScheduleShipmentSyncsJob.new.all_elegible_shipments
13
+ @cursor = 0
14
+ @batch = 4
15
+ end
16
+
17
+ def refresh
18
+ @shipments = SolidusBactracs::Api::ScheduleShipmentSyncsJob.new.query_shipments
19
+ end
20
+
21
+ def shipment(id)
22
+ @shipments.find_by(id: id)
23
+ end
24
+
25
+ def shipment_number(ship_number)
26
+ @shipments.find_by(number: ship_number)
27
+ end
28
+
29
+ def serialize(shipment)
30
+ # SolidusShipstation::Api::ApplianceShipmentSerializer.new(shipment)
31
+ @syncer.client.shipment_serializer.call(shipment, @runner.authenticate!)
32
+ end
33
+
34
+ def try_one
35
+ puts "trying shipment #{(shipment = @shipments[@cursor]).id}"
36
+ # resp = @runner.call(:post, '/orders/createorders', [serialize(shipment)])
37
+ resp = @runner.authenticated_call(shipment: shipment, serializer: @syncer.client.shipment_serializer)
38
+ if resp
39
+ @cursor += 1
40
+ return resp
41
+ end
42
+ ensure
43
+ puts resp
44
+ end
45
+
46
+ def try_batch(batch_size=nil)
47
+ b = [batch_size.to_i, @batch].max
48
+ b.times do
49
+ break unless try_one
50
+ end
51
+ end
52
+ end
53
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBactracs
4
- VERSION = '3.1.2'
4
+ VERSION = '3.2.0'
5
5
  end
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.1.2
4
+ version: 3.2.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-07-26 00:00:00.000000000 Z
12
+ date: 2022-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -171,7 +171,6 @@ files:
171
171
  - lib/bactracs_service.rb
172
172
  - lib/generators/solidus_bactracs/install/install_generator.rb
173
173
  - lib/generators/solidus_bactracs/install/templates/initializer.rb
174
- - lib/solidus_backtracs/version.rb
175
174
  - lib/solidus_bactracs.rb
176
175
  - lib/solidus_bactracs/api/batch_syncer.rb
177
176
  - lib/solidus_bactracs/api/client.rb
@@ -181,6 +180,7 @@ files:
181
180
  - lib/solidus_bactracs/api/shipment_serializer.rb
182
181
  - lib/solidus_bactracs/api/threshold_verifier.rb
183
182
  - lib/solidus_bactracs/configuration.rb
183
+ - lib/solidus_bactracs/console_harness.rb
184
184
  - lib/solidus_bactracs/engine.rb
185
185
  - lib/solidus_bactracs/errors.rb
186
186
  - lib/solidus_bactracs/shipment_notice.rb
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SolidusBacktracs
4
- VERSION = '3.1.0'
5
- end