From d5c3e94b24db3aec588a6093ce67d77686d58d3b Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 12 Dec 2024 15:45:42 +1100 Subject: [PATCH] OfferBroker needs only catalog URL, no other URLs --- app/jobs/backorder_job.rb | 2 +- app/services/backorder_updater.rb | 2 +- app/services/fdc_offer_broker.rb | 10 +++++----- spec/jobs/complete_backorder_job_spec.rb | 2 +- spec/services/fdc_backorderer_spec.rb | 4 ++-- spec/services/fdc_offer_broker_spec.rb | 6 ++++-- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/app/jobs/backorder_job.rb b/app/jobs/backorder_job.rb index e55a312ec8..c2a0b45527 100644 --- a/app/jobs/backorder_job.rb +++ b/app/jobs/backorder_job.rb @@ -117,7 +117,7 @@ class BackorderJob < ApplicationJob end def load_broker(user, urls) - FdcOfferBroker.new(user, urls) + FdcOfferBroker.new(user, urls.catalog_url) end def place_order(user, order, orderer, backorder) diff --git a/app/services/backorder_updater.rb b/app/services/backorder_updater.rb index ad84cec505..e57e59ff6c 100644 --- a/app/services/backorder_updater.rb +++ b/app/services/backorder_updater.rb @@ -40,7 +40,7 @@ class BackorderUpdater reference_link = variants[0].semantic_links[0].semantic_id urls = FdcUrlBuilder.new(reference_link) orderer = FdcBackorderer.new(user, urls) - broker = FdcOfferBroker.new(user, urls) + broker = FdcOfferBroker.new(user, urls.catalog_url) updated_lines = update_order_lines(backorder, order_cycle, variants, broker, orderer) unprocessed_lines = backorder.lines.to_set - updated_lines diff --git a/app/services/fdc_offer_broker.rb b/app/services/fdc_offer_broker.rb index 2e81e6cee3..c4108ee26c 100644 --- a/app/services/fdc_offer_broker.rb +++ b/app/services/fdc_offer_broker.rb @@ -6,19 +6,19 @@ class FdcOfferBroker Solution = Struct.new(:product, :factor, :offer) RetailSolution = Struct.new(:retail_product_id, :factor) - def self.load_catalog(user, urls) + def self.load_catalog(user, catalog_url) api = DfcRequest.new(user) - catalog_json = api.call(urls.catalog_url) + catalog_json = api.call(catalog_url) DfcIo.import(catalog_json) end - def initialize(user, urls) + def initialize(user, catalog_url) @user = user - @urls = urls + @catalog_url = catalog_url end def catalog - @catalog ||= self.class.load_catalog(@user, @urls) + @catalog ||= self.class.load_catalog(@user, @catalog_url) end def best_offer(product_id) diff --git a/spec/jobs/complete_backorder_job_spec.rb b/spec/jobs/complete_backorder_job_spec.rb index 503342edc0..ad6479079f 100644 --- a/spec/jobs/complete_backorder_job_spec.rb +++ b/spec/jobs/complete_backorder_job_spec.rb @@ -14,7 +14,7 @@ RSpec.describe CompleteBackorderJob do let(:orderer) { FdcBackorderer.new(user, urls) } let(:order) { backorder = orderer.find_or_build_order(ofn_order) - broker = FdcOfferBroker.new(user, urls) + broker = FdcOfferBroker.new(user, urls.catalog_url) bean_offer = broker.best_offer(product_link).offer bean_line = orderer.find_or_build_order_line(backorder, bean_offer) diff --git a/spec/services/fdc_backorderer_spec.rb b/spec/services/fdc_backorderer_spec.rb index 66f078a407..8e1e828a04 100644 --- a/spec/services/fdc_backorderer_spec.rb +++ b/spec/services/fdc_backorderer_spec.rb @@ -33,7 +33,7 @@ RSpec.describe FdcBackorderer do expect(backorder.lines).to eq [] # Add items and place the new order: - catalog = FdcOfferBroker.load_catalog(order.distributor.owner, urls) + catalog = FdcOfferBroker.load_catalog(order.distributor.owner, urls.catalog_url) product = catalog.find { |i| i.semanticType == "dfc-b:SuppliedProduct" } offer = FdcOfferBroker.new(nil, nil).offer_of(product) line = subject.find_or_build_order_line(backorder, offer) @@ -80,7 +80,7 @@ RSpec.describe FdcBackorderer do describe "#find_or_build_order_line" do it "add quantity to an existing line item", vcr: true do - catalog = FdcOfferBroker.load_catalog(order.distributor.owner, urls) + catalog = FdcOfferBroker.load_catalog(order.distributor.owner, urls.catalog_url) backorder = subject.find_or_build_order(order) existing_line = backorder.lines[0] diff --git a/spec/services/fdc_offer_broker_spec.rb b/spec/services/fdc_offer_broker_spec.rb index c556d436f0..403f3a84cf 100644 --- a/spec/services/fdc_offer_broker_spec.rb +++ b/spec/services/fdc_offer_broker_spec.rb @@ -3,11 +3,13 @@ require 'spec_helper' RSpec.describe FdcOfferBroker do - subject { FdcOfferBroker.new(user, urls) } + subject { FdcOfferBroker.new(user, catalog_url) } let(:catalog) { VCR.use_cassette(:fdc_catalog) { subject.catalog } } - let(:urls) { FdcUrlBuilder.new(product_link) } + let(:catalog_url) { + "https://env-0105831.jcloud-ver-jpe.ik-server.com/api/dfc/Enterprises/test-hodmedod/SuppliedProducts" + } let(:product_link) { "https://env-0105831.jcloud-ver-jpe.ik-server.com/api/dfc/Enterprises/test-hodmedod/SuppliedProducts/44519466467635" }