solidus_bactracs 3.0.0 → 3.1.2

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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gem_release.yml +2 -2
  3. data/.github/CODEOWNERS +54 -0
  4. data/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +3 -0
  5. data/.github/workflows/release.yml +50 -0
  6. data/.gitignore +0 -2
  7. data/.rubocop_todo.yml +3 -3
  8. data/.ruby-version +1 -0
  9. data/.tool-versions +1 -0
  10. data/CHANGELOG.md +10 -1
  11. data/PULL_REQUEST_TEMPLATE.md +3 -0
  12. data/README.md +7 -6
  13. data/Rakefile +1 -0
  14. data/app/assets/javascripts/spree/backend/{solidus_backtracs.js → solidus_bactracs.js} +0 -0
  15. data/app/assets/javascripts/spree/frontend/{solidus_backtracs.js → solidus_bactracs.js} +0 -0
  16. data/app/assets/stylesheets/spree/backend/{solidus_backtracs.css → solidus_bactracs.css} +0 -0
  17. data/app/assets/stylesheets/spree/frontend/{solidus_backtracs.css → solidus_bactracs.css} +0 -0
  18. data/app/controllers/spree/{backtracs_controller.rb → bactracs_controller.rb} +9 -9
  19. data/app/decorators/models/solidus_bactracs/spree/shipment_decorator.rb +46 -0
  20. data/app/helpers/{solidus_backtracs → solidus_bactracs}/export_helper.rb +2 -2
  21. data/app/jobs/{solidus_backtracs → solidus_bactracs}/api/schedule_shipment_syncs_job.rb +7 -7
  22. data/app/jobs/{solidus_backtracs → solidus_bactracs}/api/sync_shipment_job.rb +1 -1
  23. data/app/jobs/{solidus_backtracs → solidus_bactracs}/api/sync_shipments_job.rb +7 -3
  24. data/app/queries/{solidus_backtracs → solidus_bactracs}/shipment/between_query.rb +1 -1
  25. data/app/queries/{solidus_backtracs → solidus_bactracs}/shipment/exportable_query.rb +3 -3
  26. data/app/queries/{solidus_backtracs → solidus_bactracs}/shipment/pending_api_sync_query.rb +6 -6
  27. data/app/views/spree/{backtracs → bactracs}/export.xml.builder +5 -5
  28. data/app/workers/verify_bactracs_sync_worker.rb +14 -0
  29. data/bin/console +1 -1
  30. data/bin/rails-engine +1 -1
  31. data/bin/sandbox +1 -1
  32. data/config/routes.rb +2 -2
  33. data/db/migrate/20210220093010_add_bactracs_api_sync_fields.rb +11 -0
  34. data/db/migrate/20220701000001_bactracs_typo_correction.rb +10 -0
  35. data/db/migrate/20220704144504_rename_bactracs_columns_in_spree_shipment.rb +10 -0
  36. data/lib/bactracs_service.rb +66 -0
  37. data/lib/generators/{solidus_backtracs → solidus_bactracs}/install/install_generator.rb +3 -3
  38. data/lib/generators/{solidus_backtracs → solidus_bactracs}/install/templates/initializer.rb +42 -12
  39. data/lib/solidus_backtracs/version.rb +1 -1
  40. data/lib/{solidus_backtracs → solidus_bactracs}/api/batch_syncer.rb +5 -5
  41. data/lib/{solidus_backtracs → solidus_bactracs}/api/client.rb +4 -4
  42. data/lib/{solidus_backtracs → solidus_bactracs}/api/rate_limited_error.rb +1 -1
  43. data/lib/{solidus_backtracs → solidus_bactracs}/api/request_error.rb +1 -1
  44. data/lib/solidus_bactracs/api/request_runner.rb +135 -0
  45. data/lib/{solidus_backtracs → solidus_bactracs}/api/shipment_serializer.rb +28 -27
  46. data/lib/{solidus_backtracs → solidus_bactracs}/api/threshold_verifier.rb +6 -6
  47. data/lib/{solidus_backtracs → solidus_bactracs}/configuration.rb +4 -4
  48. data/lib/{solidus_backtracs → solidus_bactracs}/engine.rb +2 -2
  49. data/lib/{solidus_backtracs → solidus_bactracs}/errors.rb +1 -1
  50. data/lib/{solidus_backtracs → solidus_bactracs}/shipment_notice.rb +2 -2
  51. data/lib/{solidus_backtracs → solidus_bactracs}/testing_support/factories.rb +0 -0
  52. data/lib/solidus_bactracs/version.rb +5 -0
  53. data/lib/solidus_bactracs.rb +16 -0
  54. data/lib/tasks/solidus_bactracs.rake +16 -0
  55. data/solidus_bactracs.gemspec +3 -2
  56. data/spec/controllers/spree/{backtracs_controller_spec.rb → bactracs_controller_spec.rb} +9 -9
  57. data/spec/fixtures/{backtracs_xml_schema.xsd → bactracs_xml_schema.xsd} +0 -0
  58. data/spec/jobs/{solidus_backtracs → solidus_bactracs}/api/schedule_shipment_syncs_job_spec.rb +5 -5
  59. data/spec/jobs/{solidus_backtracs → solidus_bactracs}/api/sync_shipments_job_spec.rb +10 -10
  60. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/batch_syncer_spec.rb +28 -28
  61. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/client_spec.rb +10 -10
  62. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/rate_limited_error_spec.rb +1 -1
  63. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/request_error_spec.rb +1 -1
  64. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/request_runner_spec.rb +3 -3
  65. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/shipment_serializer_spec.rb +1 -1
  66. data/spec/lib/{solidus_backtracs → solidus_bactracs}/api/threshold_verifier_spec.rb +9 -9
  67. data/spec/lib/{solidus_backtracs → solidus_bactracs}/shipment_notice_spec.rb +4 -4
  68. data/spec/lib/solidus_bactracs_spec.rb +9 -0
  69. data/spec/models/spree/shipment_spec.rb +2 -2
  70. data/spec/queries/{solidus_backtracs → solidus_bactracs}/shipment/between_query_spec.rb +1 -1
  71. data/spec/queries/{solidus_backtracs → solidus_bactracs}/shipment/exportable_query_spec.rb +1 -1
  72. data/spec/queries/{solidus_backtracs → solidus_bactracs}/shipment/pending_api_sync_query_spec.rb +4 -4
  73. data/spec/spec_helper.rb +2 -2
  74. data/spec/support/configuration_helper.rb +1 -1
  75. metadata +81 -68
  76. data/app/decorators/models/solidus_backtracs/spree/shipment_decorator.rb +0 -33
  77. data/db/migrate/20210220093010_add_backtracs_api_sync_fields.rb +0 -8
  78. data/lib/solidus_backtracs/api/request_runner.rb +0 -109
  79. data/lib/solidus_backtracs.rb +0 -16
  80. data/spec/lib/solidus_backtracs_spec.rb +0 -9
@@ -1,4 +1,4 @@
1
- RSpec.describe SolidusBacktracs::Shipment::PendingApiSyncQuery do
1
+ RSpec.describe SolidusBactracs::Shipment::PendingApiSyncQuery do
2
2
  describe '.apply' do
3
3
  context 'when dealing with shipments that were never synced' do
4
4
  it 'returns the shipments that are within the threshold' do
@@ -19,15 +19,15 @@ RSpec.describe SolidusBacktracs::Shipment::PendingApiSyncQuery do
19
19
  stub_configuration(api_sync_threshold: 10.minutes)
20
20
  shipment = create(:order_ready_to_ship).shipments.first.tap do |s|
21
21
  s.order.update_columns(updated_at: 7.minutes.ago)
22
- s.update_columns(backtracs_synced_at: 8.minutes.ago)
22
+ s.update_columns(bactracs_synced_at: 8.minutes.ago)
23
23
  end
24
24
  create(:order_ready_to_ship).shipments.first.tap do |s|
25
25
  s.order.update_columns(updated_at: 9.minutes.ago)
26
- s.update_columns(backtracs_synced_at: 8.minutes.ago)
26
+ s.update_columns(bactracs_synced_at: 8.minutes.ago)
27
27
  end
28
28
  create(:order_ready_to_ship).shipments.first.tap do |s|
29
29
  s.order.update_columns(updated_at: 11.minutes.ago)
30
- s.update_columns(backtracs_synced_at: 10.minutes.ago)
30
+ s.update_columns(bactracs_synced_at: 10.minutes.ago)
31
31
  end
32
32
 
33
33
  expect(described_class.apply(Spree::Shipment.all)).to match_array([shipment])
data/spec/spec_helper.rb CHANGED
@@ -18,8 +18,8 @@ require 'solidus_dev_support/rspec/feature_helper'
18
18
  # in spec/support/ and its subdirectories.
19
19
  Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
20
20
 
21
- # Requires factories defined in lib/solidus_backtracs/testing_support/factories.rb
22
- SolidusDevSupport::TestingSupport::Factories.load_for(SolidusBacktracs::Engine)
21
+ # Requires factories defined in lib/solidus_bactracs/testing_support/factories.rb
22
+ SolidusDevSupport::TestingSupport::Factories.load_for(SolidusBactracs::Engine)
23
23
 
24
24
  RSpec.configure do |config|
25
25
  config.infer_spec_type_from_file_location!
@@ -1,6 +1,6 @@
1
1
  module ConfigurationHelper
2
2
  def stub_configuration(options)
3
- allow(SolidusBacktracs.configuration).to receive_messages(options)
3
+ allow(SolidusBactracs.configuration).to receive_messages(options)
4
4
 
5
5
  if options[:capture_at_notification]
6
6
  stub_spree_preferences(require_payment_to_ship: false)
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_bactracs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zeryab Ali
8
8
  - Zachary Jones
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-06-30 00:00:00.000000000 Z
12
+ date: 2022-07-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -115,7 +115,7 @@ dependencies:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
- description:
118
+ description:
119
119
  email: techbilling@suvie.com
120
120
  executables: []
121
121
  extensions: []
@@ -124,31 +124,38 @@ files:
124
124
  - ".bundle/config"
125
125
  - ".circleci/config.yml"
126
126
  - ".gem_release.yml"
127
+ - ".github/CODEOWNERS"
128
+ - ".github/PULL_REQUEST_TEMPLATE/pull_request_template.md"
127
129
  - ".github/stale.yml"
130
+ - ".github/workflows/release.yml"
128
131
  - ".github_changelog_generator"
129
132
  - ".gitignore"
130
133
  - ".rspec"
131
134
  - ".rubocop.yml"
132
135
  - ".rubocop_todo.yml"
136
+ - ".ruby-version"
137
+ - ".tool-versions"
133
138
  - CHANGELOG.md
134
139
  - Gemfile
135
140
  - LICENSE
141
+ - PULL_REQUEST_TEMPLATE.md
136
142
  - README.md
137
143
  - Rakefile
138
- - app/assets/javascripts/spree/backend/solidus_backtracs.js
139
- - app/assets/javascripts/spree/frontend/solidus_backtracs.js
140
- - app/assets/stylesheets/spree/backend/solidus_backtracs.css
141
- - app/assets/stylesheets/spree/frontend/solidus_backtracs.css
142
- - app/controllers/spree/backtracs_controller.rb
143
- - app/decorators/models/solidus_backtracs/spree/shipment_decorator.rb
144
- - app/helpers/solidus_backtracs/export_helper.rb
145
- - app/jobs/solidus_backtracs/api/schedule_shipment_syncs_job.rb
146
- - app/jobs/solidus_backtracs/api/sync_shipment_job.rb
147
- - app/jobs/solidus_backtracs/api/sync_shipments_job.rb
148
- - app/queries/solidus_backtracs/shipment/between_query.rb
149
- - app/queries/solidus_backtracs/shipment/exportable_query.rb
150
- - app/queries/solidus_backtracs/shipment/pending_api_sync_query.rb
151
- - app/views/spree/backtracs/export.xml.builder
144
+ - app/assets/javascripts/spree/backend/solidus_bactracs.js
145
+ - app/assets/javascripts/spree/frontend/solidus_bactracs.js
146
+ - app/assets/stylesheets/spree/backend/solidus_bactracs.css
147
+ - app/assets/stylesheets/spree/frontend/solidus_bactracs.css
148
+ - app/controllers/spree/bactracs_controller.rb
149
+ - app/decorators/models/solidus_bactracs/spree/shipment_decorator.rb
150
+ - app/helpers/solidus_bactracs/export_helper.rb
151
+ - app/jobs/solidus_bactracs/api/schedule_shipment_syncs_job.rb
152
+ - app/jobs/solidus_bactracs/api/sync_shipment_job.rb
153
+ - app/jobs/solidus_bactracs/api/sync_shipments_job.rb
154
+ - app/queries/solidus_bactracs/shipment/between_query.rb
155
+ - app/queries/solidus_bactracs/shipment/exportable_query.rb
156
+ - app/queries/solidus_bactracs/shipment/pending_api_sync_query.rb
157
+ - app/views/spree/bactracs/export.xml.builder
158
+ - app/workers/verify_bactracs_sync_worker.rb
152
159
  - bin/console
153
160
  - bin/rails
154
161
  - bin/rails-engine
@@ -158,41 +165,46 @@ files:
158
165
  - bin/setup
159
166
  - config/locales/en.yml
160
167
  - config/routes.rb
161
- - db/migrate/20210220093010_add_backtracs_api_sync_fields.rb
162
- - lib/generators/solidus_backtracs/install/install_generator.rb
163
- - lib/generators/solidus_backtracs/install/templates/initializer.rb
164
- - lib/solidus_backtracs.rb
165
- - lib/solidus_backtracs/api/batch_syncer.rb
166
- - lib/solidus_backtracs/api/client.rb
167
- - lib/solidus_backtracs/api/rate_limited_error.rb
168
- - lib/solidus_backtracs/api/request_error.rb
169
- - lib/solidus_backtracs/api/request_runner.rb
170
- - lib/solidus_backtracs/api/shipment_serializer.rb
171
- - lib/solidus_backtracs/api/threshold_verifier.rb
172
- - lib/solidus_backtracs/configuration.rb
173
- - lib/solidus_backtracs/engine.rb
174
- - lib/solidus_backtracs/errors.rb
175
- - lib/solidus_backtracs/shipment_notice.rb
176
- - lib/solidus_backtracs/testing_support/factories.rb
168
+ - db/migrate/20210220093010_add_bactracs_api_sync_fields.rb
169
+ - db/migrate/20220701000001_bactracs_typo_correction.rb
170
+ - db/migrate/20220704144504_rename_bactracs_columns_in_spree_shipment.rb
171
+ - lib/bactracs_service.rb
172
+ - lib/generators/solidus_bactracs/install/install_generator.rb
173
+ - lib/generators/solidus_bactracs/install/templates/initializer.rb
177
174
  - lib/solidus_backtracs/version.rb
175
+ - lib/solidus_bactracs.rb
176
+ - lib/solidus_bactracs/api/batch_syncer.rb
177
+ - lib/solidus_bactracs/api/client.rb
178
+ - lib/solidus_bactracs/api/rate_limited_error.rb
179
+ - lib/solidus_bactracs/api/request_error.rb
180
+ - lib/solidus_bactracs/api/request_runner.rb
181
+ - lib/solidus_bactracs/api/shipment_serializer.rb
182
+ - lib/solidus_bactracs/api/threshold_verifier.rb
183
+ - lib/solidus_bactracs/configuration.rb
184
+ - lib/solidus_bactracs/engine.rb
185
+ - lib/solidus_bactracs/errors.rb
186
+ - lib/solidus_bactracs/shipment_notice.rb
187
+ - lib/solidus_bactracs/testing_support/factories.rb
188
+ - lib/solidus_bactracs/version.rb
189
+ - lib/tasks/solidus_bactracs.rake
178
190
  - solidus_bactracs.gemspec
179
- - spec/controllers/spree/backtracs_controller_spec.rb
180
- - spec/fixtures/backtracs_xml_schema.xsd
181
- - spec/jobs/solidus_backtracs/api/schedule_shipment_syncs_job_spec.rb
182
- - spec/jobs/solidus_backtracs/api/sync_shipments_job_spec.rb
183
- - spec/lib/solidus_backtracs/api/batch_syncer_spec.rb
184
- - spec/lib/solidus_backtracs/api/client_spec.rb
185
- - spec/lib/solidus_backtracs/api/rate_limited_error_spec.rb
186
- - spec/lib/solidus_backtracs/api/request_error_spec.rb
187
- - spec/lib/solidus_backtracs/api/request_runner_spec.rb
188
- - spec/lib/solidus_backtracs/api/shipment_serializer_spec.rb
189
- - spec/lib/solidus_backtracs/api/threshold_verifier_spec.rb
190
- - spec/lib/solidus_backtracs/shipment_notice_spec.rb
191
- - spec/lib/solidus_backtracs_spec.rb
191
+ - spec/controllers/spree/bactracs_controller_spec.rb
192
+ - spec/fixtures/bactracs_xml_schema.xsd
193
+ - spec/jobs/solidus_bactracs/api/schedule_shipment_syncs_job_spec.rb
194
+ - spec/jobs/solidus_bactracs/api/sync_shipments_job_spec.rb
195
+ - spec/lib/solidus_bactracs/api/batch_syncer_spec.rb
196
+ - spec/lib/solidus_bactracs/api/client_spec.rb
197
+ - spec/lib/solidus_bactracs/api/rate_limited_error_spec.rb
198
+ - spec/lib/solidus_bactracs/api/request_error_spec.rb
199
+ - spec/lib/solidus_bactracs/api/request_runner_spec.rb
200
+ - spec/lib/solidus_bactracs/api/shipment_serializer_spec.rb
201
+ - spec/lib/solidus_bactracs/api/threshold_verifier_spec.rb
202
+ - spec/lib/solidus_bactracs/shipment_notice_spec.rb
203
+ - spec/lib/solidus_bactracs_spec.rb
192
204
  - spec/models/spree/shipment_spec.rb
193
- - spec/queries/solidus_backtracs/shipment/between_query_spec.rb
194
- - spec/queries/solidus_backtracs/shipment/exportable_query_spec.rb
195
- - spec/queries/solidus_backtracs/shipment/pending_api_sync_query_spec.rb
205
+ - spec/queries/solidus_bactracs/shipment/between_query_spec.rb
206
+ - spec/queries/solidus_bactracs/shipment/exportable_query_spec.rb
207
+ - spec/queries/solidus_bactracs/shipment/pending_api_sync_query_spec.rb
196
208
  - spec/spec_helper.rb
197
209
  - spec/support/configuration_helper.rb
198
210
  - spec/support/controllers.rb
@@ -205,7 +217,8 @@ metadata:
205
217
  homepage_uri: https://github.com/suvie-eng/solidus_bactracs
206
218
  source_code_uri: https://github.com/suvie-eng/solidus_bactracs/
207
219
  changelog_uri: https://github.com/suvie-eng/solidus_bactracs/blob/master/CHANGELOG.md
208
- post_install_message:
220
+ allowed_push_host: https://rubygems.org
221
+ post_install_message:
209
222
  rdoc_options: []
210
223
  require_paths:
211
224
  - lib
@@ -221,27 +234,27 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
234
  version: '0'
222
235
  requirements: []
223
236
  rubygems_version: 3.1.4
224
- signing_key:
237
+ signing_key:
225
238
  specification_version: 4
226
239
  summary: A Solidus extension for integrating the Bactracs API.
227
240
  test_files:
228
- - spec/controllers/spree/backtracs_controller_spec.rb
229
- - spec/fixtures/backtracs_xml_schema.xsd
230
- - spec/jobs/solidus_backtracs/api/schedule_shipment_syncs_job_spec.rb
231
- - spec/jobs/solidus_backtracs/api/sync_shipments_job_spec.rb
232
- - spec/lib/solidus_backtracs/api/batch_syncer_spec.rb
233
- - spec/lib/solidus_backtracs/api/client_spec.rb
234
- - spec/lib/solidus_backtracs/api/rate_limited_error_spec.rb
235
- - spec/lib/solidus_backtracs/api/request_error_spec.rb
236
- - spec/lib/solidus_backtracs/api/request_runner_spec.rb
237
- - spec/lib/solidus_backtracs/api/shipment_serializer_spec.rb
238
- - spec/lib/solidus_backtracs/api/threshold_verifier_spec.rb
239
- - spec/lib/solidus_backtracs/shipment_notice_spec.rb
240
- - spec/lib/solidus_backtracs_spec.rb
241
+ - spec/controllers/spree/bactracs_controller_spec.rb
242
+ - spec/fixtures/bactracs_xml_schema.xsd
243
+ - spec/jobs/solidus_bactracs/api/schedule_shipment_syncs_job_spec.rb
244
+ - spec/jobs/solidus_bactracs/api/sync_shipments_job_spec.rb
245
+ - spec/lib/solidus_bactracs/api/batch_syncer_spec.rb
246
+ - spec/lib/solidus_bactracs/api/client_spec.rb
247
+ - spec/lib/solidus_bactracs/api/rate_limited_error_spec.rb
248
+ - spec/lib/solidus_bactracs/api/request_error_spec.rb
249
+ - spec/lib/solidus_bactracs/api/request_runner_spec.rb
250
+ - spec/lib/solidus_bactracs/api/shipment_serializer_spec.rb
251
+ - spec/lib/solidus_bactracs/api/threshold_verifier_spec.rb
252
+ - spec/lib/solidus_bactracs/shipment_notice_spec.rb
253
+ - spec/lib/solidus_bactracs_spec.rb
241
254
  - spec/models/spree/shipment_spec.rb
242
- - spec/queries/solidus_backtracs/shipment/between_query_spec.rb
243
- - spec/queries/solidus_backtracs/shipment/exportable_query_spec.rb
244
- - spec/queries/solidus_backtracs/shipment/pending_api_sync_query_spec.rb
255
+ - spec/queries/solidus_bactracs/shipment/between_query_spec.rb
256
+ - spec/queries/solidus_bactracs/shipment/exportable_query_spec.rb
257
+ - spec/queries/solidus_bactracs/shipment/pending_api_sync_query_spec.rb
245
258
  - spec/spec_helper.rb
246
259
  - spec/support/configuration_helper.rb
247
260
  - spec/support/controllers.rb
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SolidusBacktracs
4
- module Spree
5
- module ShipmentDecorator
6
- def self.prepended(base)
7
- base.singleton_class.prepend ClassMethods
8
- end
9
-
10
- module ClassMethods
11
- def exportable
12
- ::Spree::Deprecation.warn <<~DEPRECATION
13
- `Spree::Shipment.exportable` is deprecated and will be removed in a future version
14
- of solidus_backtracs. Please use `SolidusBacktracs::Shipment::ExportableQuery.apply`.
15
- DEPRECATION
16
-
17
- SolidusBacktracs::Shipment::ExportableQuery.apply(self)
18
- end
19
-
20
- def between(from, to)
21
- ::Spree::Deprecation.warn <<~DEPRECATION
22
- `Spree::Shipment.between` is deprecated and will be removed in a future version
23
- of solidus_backtracs. Please use `SolidusBacktracs::Shipment::BetweenQuery.apply`.
24
- DEPRECATION
25
-
26
- SolidusBacktracs::Shipment::BetweenQuery.apply(self, from: from, to: to)
27
- end
28
- end
29
-
30
- ::Spree::Shipment.prepend self
31
- end
32
- end
33
- end
@@ -1,8 +0,0 @@
1
- # NOTE: This migration is only required if you use the API integration strategy.
2
- # If you're using the XML file instead, you can safely skip these columns.
3
-
4
- class AddBacktracsApiSyncFields < ActiveRecord::Migration[5.2]
5
- def change
6
- add_column :spree_shipments, :backtracs_synced_at, :datetime
7
- end
8
- end
@@ -1,109 +0,0 @@
1
- # frozen_string_literal: true
2
- require "uri"
3
- require "net/http"
4
-
5
- module SolidusBacktracs
6
- module Api
7
- class RequestRunner
8
-
9
- def initialize
10
- @username = SolidusBacktracs.configuration.authentication_username
11
- @password = SolidusBacktracs.configuration.authentication_password
12
- @api_base = SolidusBacktracs.configuration.api_base
13
- @retries = SolidusBacktracs.configuration.api_retries
14
- end
15
-
16
- def authenticated_call(method: nil, path: nil, serializer: nil, shipment: nil, count: 0)
17
- if count <= @retries
18
- unless @username.present? || @password.present? || @api_base.present?
19
- raise "Credentials not defined for Authentication"
20
- end
21
-
22
- @response = Rails.cache.fetch("backtracks_cache_key", expires_in: 1.hour, skip_nil: true) do
23
- self.call(method: :get, path: "/webservices/user/Authentication.asmx/Login?sUserName=#{@username}&sPassword=#{@password}")
24
- end
25
-
26
- raise RequestError.from_response(@response) unless @response # just try again for @retries?
27
- authenticted = parse_authentication_response(@response, "Result")
28
- raise RequestError.from_response(@response) if authenticted == "false"
29
- sguid = parse_authentication_response(@response, "Message")
30
-
31
- if authenticted == 'false'
32
- clear_cache
33
- raise "User Not Authenticated"
34
- else
35
- sguid = parse_authentication_response(@response, "Message")
36
- params = serializer.call(shipment, sguid)
37
-
38
- rma_response = call(method: :post, path: path, params: params)
39
- unless parse_rma_creation_response(rma_response) == 'true'
40
- clear_cache
41
- count += 1
42
- self.authenticated_call(method: :post, path: '/webservices/rma/rmaservice.asmx', serializer: serializer, shipment: shipment, count: count)
43
- end
44
- shipment_synced(shipment)
45
- end
46
- else
47
- shipment_sync_failed(shipment)
48
- end
49
- end
50
-
51
- def call(method: nil, path: nil, params: {})
52
- doc = {}
53
- if params.present?
54
- doc = Nokogiri::XML(params.to_s)
55
- end
56
- response = HTTParty.send(
57
- method,
58
- URI.join(@api_base, path),
59
- body: doc.to_xml,
60
- http_proxyaddr: SolidusBacktracs.configuration.proxy_address,
61
- http_proxyport: SolidusBacktracs.configuration.proxy_port,
62
- http_proxyuser: SolidusBacktracs.configuration.proxy_username,
63
- http_proxypass: SolidusBacktracs.configuration.proxy_password,
64
- headers: {
65
- 'Content-Type' => 'text/xml',
66
- },
67
- )
68
-
69
- case response.code.to_s
70
- when /2\d{2}/
71
- response
72
- when '429'
73
- raise RateLimitedError.from_response(response)
74
- else
75
- raise RequestError.from_response(response)
76
- end
77
- end
78
-
79
- def clear_cache
80
- Rails.cache.delete('backtracks_cache_key')
81
- @response = nil
82
- end
83
-
84
- def parse_authentication_response(response, type)
85
- response.dig("AuthenticationResponse", type)
86
- end
87
-
88
- def parse_rma_creation_response(response)
89
- response.dig("Envelope", "Body", "CreateNewResponse", "CreateNewResult", "Result")
90
- end
91
-
92
- def shipment_synced(shipment)
93
- shipment.update_column(:backtracs_synced_at, Time.zone.now)
94
-
95
- ::Spree::Event.fire(
96
- 'solidus_backtracs.api.sync_completed',
97
- shipment: shipment
98
- )
99
- end
100
-
101
- def shipment_sync_failed(shipment)
102
- ::Spree::Event.fire(
103
- 'solidus_backtracs.api.sync_failed',
104
- shipment: shipment
105
- )
106
- end
107
- end
108
- end
109
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'httparty'
4
-
5
- require 'solidus_backtracs/api/batch_syncer'
6
- require 'solidus_backtracs/api/request_runner'
7
- require 'solidus_backtracs/api/client'
8
- require 'solidus_backtracs/api/request_error'
9
- require 'solidus_backtracs/api/rate_limited_error'
10
- require 'solidus_backtracs/api/shipment_serializer'
11
- require 'solidus_backtracs/api/threshold_verifier'
12
- require 'solidus_backtracs/configuration'
13
- require 'solidus_backtracs/errors'
14
- require 'solidus_backtracs/shipment_notice'
15
- require 'solidus_backtracs/version'
16
- require 'solidus_backtracs/engine'
@@ -1,9 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe SolidusBacktracs do
4
- describe 'VERSION' do
5
- it 'is defined' do
6
- expect(SolidusBacktracs::VERSION).to be_present
7
- end
8
- end
9
- end