mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-18 04:39:14 +00:00
OfferBroker needs only catalog URL, no other URLs
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user