From 5f237adda20523f2687d8f4d167412370d4e3087 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Mon, 24 Nov 2025 16:43:33 +1100 Subject: [PATCH] Publish phone numbers as objects The standard introduced this a while ago but I didn't notice. We have to update integrations like Disco Regen now. --- .../dfc_provider/app/services/enterprise_builder.rb | 13 ++++++++++++- swagger/dfc.yaml | 8 ++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/engines/dfc_provider/app/services/enterprise_builder.rb b/engines/dfc_provider/app/services/enterprise_builder.rb index 8f37b478d5..751abbbe54 100644 --- a/engines/dfc_provider/app/services/enterprise_builder.rb +++ b/engines/dfc_provider/app/services/enterprise_builder.rb @@ -19,7 +19,7 @@ class EnterpriseBuilder < DfcBuilder catalogItems: catalog_items, emails: [enterprise.email_address].compact, localizations: [address], - phoneNumbers: [enterprise.phone].compact, + phoneNumbers: phone_numbers(enterprise), socialMedias: SocialMediaBuilder.social_medias(enterprise), logo: enterprise.logo_url(:small), mainContact: contact(enterprise), @@ -71,4 +71,15 @@ class EnterpriseBuilder < DfcBuilder lastName:, # rubocop:disable Naming/VariableName ) end + + def self.phone_numbers(enterprise) + return [] if enterprise.phone.blank? + + number = DataFoodConsortium::Connector::PhoneNumber.new( + nil, + phoneNumber: enterprise.phone, + ) + + [number] + end end diff --git a/swagger/dfc.yaml b/swagger/dfc.yaml index 44e13259c1..ab79b0da91 100644 --- a/swagger/dfc.yaml +++ b/swagger/dfc.yaml @@ -435,7 +435,9 @@ paths: - "@id": http://test.host/api/dfc/enterprises/10000 "@type": dfc-b:Enterprise dfc-b:hasAddress: http://test.host/api/dfc/addresses/40000 - dfc-b:hasPhoneNumber: 0404 444 000 200 + dfc-b:hasPhoneNumber: + "@type": dfc-b:PhoneNumber + dfc-b:phoneNumber: 0404 444 000 200 dfc-b:email: hello@example.org dfc-b:websitePage: https://openfoodnetwork.org dfc-b:hasSocialMedia: http://test.host/api/dfc/enterprises/10000/social_medias/facebook @@ -520,7 +522,9 @@ paths: - "@id": http://test.host/api/dfc/enterprises/10000 "@type": dfc-b:Enterprise dfc-b:hasAddress: http://test.host/api/dfc/addresses/40000 - dfc-b:hasPhoneNumber: 0404 444 000 200 + dfc-b:hasPhoneNumber: + "@type": dfc-b:PhoneNumber + dfc-b:phoneNumber: 0404 444 000 200 dfc-b:email: hello@example.org dfc-b:websitePage: https://openfoodnetwork.org dfc-b:hasSocialMedia: http://test.host/api/dfc/enterprises/10000/social_medias/facebook