diff --git a/engines/dfc_provider/app/services/dfc_io.rb b/engines/dfc_provider/app/services/dfc_io.rb index 2457eb4a46..99bf63df66 100644 --- a/engines/dfc_provider/app/services/dfc_io.rb +++ b/engines/dfc_provider/app/services/dfc_io.rb @@ -1,8 +1,5 @@ # frozen_string_literal: true -# Load our monkey-patches: -require "data_food_consortium/connector/connector" - # Our interface to the DFC Connector library. module DfcIo # Serialise DFC Connector subjects as JSON-LD string. diff --git a/engines/dfc_provider/app/services/dfc_loader.rb b/engines/dfc_provider/app/services/dfc_loader.rb index d9ef128c96..1fae62f9f4 100644 --- a/engines/dfc_provider/app/services/dfc_loader.rb +++ b/engines/dfc_provider/app/services/dfc_loader.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "data_food_consortium/connector/connector" - class DfcLoader def self.connector @connector ||= load_vocabularies diff --git a/engines/dfc_provider/app/services/supplied_product_builder.rb b/engines/dfc_provider/app/services/supplied_product_builder.rb index 1f9ff42df8..53d64f5d3c 100644 --- a/engines/dfc_provider/app/services/supplied_product_builder.rb +++ b/engines/dfc_provider/app/services/supplied_product_builder.rb @@ -7,17 +7,14 @@ class SuppliedProductBuilder < DfcBuilder id: variant.id, ) - DataFoodConsortium::Connector::SuppliedProduct.new( + DfcProvider::SuppliedProduct.new( id, name: variant.name_to_display, description: variant.description, productType: product_type, quantity: QuantitativeValueBuilder.quantity(variant), - ).tap do |supplied_product| - supplied_product.registerSemanticProperty("ofn:spree_product_id") do - variant.product.id - end - end + spree_product_id: variant.product.id, + ) end def self.import(supplied_product) diff --git a/engines/dfc_provider/lib/dfc_provider.rb b/engines/dfc_provider/lib/dfc_provider.rb index b0cf98121a..d6be00d677 100644 --- a/engines/dfc_provider/lib/dfc_provider.rb +++ b/engines/dfc_provider/lib/dfc_provider.rb @@ -1,6 +1,13 @@ # frozen_string_literal: true +# Load our monkey-patches of the DFC Connector: +require "data_food_consortium/connector/connector" + +# Our Rails engine require "dfc_provider/engine" +# Custom data types +require "dfc_provider/supplied_product" + module DfcProvider end diff --git a/engines/dfc_provider/lib/dfc_provider/supplied_product.rb b/engines/dfc_provider/lib/dfc_provider/supplied_product.rb new file mode 100644 index 0000000000..06b762ba87 --- /dev/null +++ b/engines/dfc_provider/lib/dfc_provider/supplied_product.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module DfcProvider + class SuppliedProduct < DataFoodConsortium::Connector::SuppliedProduct + attr_accessor :spree_product_id + + def initialize(semantic_id, spree_product_id: nil, **properties) + super(semantic_id, **properties) + + self.spree_product_id = spree_product_id + + registerSemanticProperty("ofn:spree_product_id") do + self.spree_product_id + end + end + end +end