From 3331aaa38263cc6cd4d493c2bd3b27f4f2afe3db Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Tue, 9 Dec 2025 11:39:48 +1100 Subject: [PATCH] Fetch data from URL provided by Litefarm So we don't have to distinguish between staging and production. They will provide the right URL. --- .../app/controllers/dfc_provider/events_controller.rb | 2 +- engines/dfc_provider/app/services/dfc_importer.rb | 5 ++--- engines/dfc_provider/spec/services/dfc_importer_spec.rb | 6 ++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/engines/dfc_provider/app/controllers/dfc_provider/events_controller.rb b/engines/dfc_provider/app/controllers/dfc_provider/events_controller.rb index 80980450cc..77e179d327 100644 --- a/engines/dfc_provider/app/controllers/dfc_provider/events_controller.rb +++ b/engines/dfc_provider/app/controllers/dfc_provider/events_controller.rb @@ -33,7 +33,7 @@ module DfcProvider return end - DfcImporter.new.import_enterprise_profiles(current_user.id) + DfcImporter.new.import_enterprise_profiles(current_user.id, enterprises_url) render json: { success: true } end diff --git a/engines/dfc_provider/app/services/dfc_importer.rb b/engines/dfc_provider/app/services/dfc_importer.rb index 123a1bc1f2..f6bb5041be 100644 --- a/engines/dfc_provider/app/services/dfc_importer.rb +++ b/engines/dfc_provider/app/services/dfc_importer.rb @@ -2,12 +2,11 @@ # Fetch data from another platform and store it locally. class DfcImporter - def import_enterprise_profiles(platform) + def import_enterprise_profiles(platform, enterprises_url) raise "unsupported platform" if platform != "lf-dev" - endpoint = "https://api.beta.litefarm.org/dfc/enterprises/" api = DfcPlatformRequest.new(platform) - body = api.call(endpoint) + body = api.call(enterprises_url) graph = DfcIo.import(body).to_a farms = graph.select { |item| item.semanticType == "dfc-b:Enterprise" } farms.each { |farm| import_profile(farm) } diff --git a/engines/dfc_provider/spec/services/dfc_importer_spec.rb b/engines/dfc_provider/spec/services/dfc_importer_spec.rb index 11e49b6a5f..370d6d8092 100644 --- a/engines/dfc_provider/spec/services/dfc_importer_spec.rb +++ b/engines/dfc_provider/spec/services/dfc_importer_spec.rb @@ -8,9 +8,11 @@ require_relative "../spec_helper" # OPENID_APP_ID="..." # OPENID_APP_SECRET="..." RSpec.describe DfcImporter do + let(:endpoint) { "https://api.beta.litefarm.org/dfc/enterprises/" } + it "fetches a list of enterprises", :vcr do expect { - subject.import_enterprise_profiles("lf-dev") + subject.import_enterprise_profiles("lf-dev", endpoint) }.to have_enqueued_mail(Spree::UserMailer, :confirmation_instructions) .and have_enqueued_mail(EnterpriseMailer, :welcome).twice @@ -24,7 +26,7 @@ RSpec.describe DfcImporter do # Repeating works without creating duplicates: expect { - subject.import_enterprise_profiles("lf-dev") + subject.import_enterprise_profiles("lf-dev", endpoint) }.not_to have_enqueued_mail end end