From 26d09acafeffe33aee1d3d40bbba66d448b0b596 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 30 Jan 2025 10:17:20 +1100 Subject: [PATCH] Move taxon discovery to own class for additions --- .../app/services/product_type_importer.rb | 11 +++++++++++ .../app/services/supplied_product_builder.rb | 6 +----- 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 engines/dfc_provider/app/services/product_type_importer.rb diff --git a/engines/dfc_provider/app/services/product_type_importer.rb b/engines/dfc_provider/app/services/product_type_importer.rb new file mode 100644 index 0000000000..2852cdbd51 --- /dev/null +++ b/engines/dfc_provider/app/services/product_type_importer.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class ProductTypeImporter < DfcBuilder + def self.taxon(product_type) + dfc_id = product_type&.semanticId + + # Every product needs a primary taxon to be valid. So if we don't have + # one or can't find it we just take a random one. + Spree::Taxon.find_by(dfc_id:) || Spree::Taxon.first + end +end diff --git a/engines/dfc_provider/app/services/supplied_product_builder.rb b/engines/dfc_provider/app/services/supplied_product_builder.rb index c55ae55828..ff567ff52b 100644 --- a/engines/dfc_provider/app/services/supplied_product_builder.rb +++ b/engines/dfc_provider/app/services/supplied_product_builder.rb @@ -111,11 +111,7 @@ class SuppliedProductBuilder < DfcBuilder end def self.taxon(supplied_product) - dfc_id = supplied_product.productType&.semanticId - - # Every product needs a primary taxon to be valid. So if we don't have - # one or can't find it we just take a random one. - Spree::Taxon.find_by(dfc_id:) || Spree::Taxon.first + ProductTypeImporter.taxon(supplied_product.productType) end private_class_method :product_type, :taxon