def format_office(office)
def format_office(office)
return {} unless office
contact = office.dig("links", "contact", 0)
{
"title" => office["title"],
"format" => "World Office",
"updated_at" => office["public_updated_at"],
"web_url" => office["web_url"],
"details" => {
"email" => contact&.dig("details", "email_addresses"),
"description" => contact&.dig("details", "description"),
"contact_form_url" => contact&.dig("details", "contact_form_links"),
"access_and_opening_times" => office.dig("details", "access_and_opening_times"),
"type" => office.dig("details", "type"),
},
"address" => {
"adr" => {
"fn" => contact&.dig("details", "post_addresses", 0, "title"),
"street-address" => contact&.dig("details", "post_addresses", 0, "street_address"),
"postal-code" => contact&.dig("details", "post_addresses", 0, "postal_code"),
"locality" => contact&.dig("details", "post_addresses", 0, "locality"),
"region" => contact&.dig("details", "post_addresses", 0, "region"),
"country-name" => contact&.dig("details", "post_addresses", 0, "world_location"),
},
},
"contact_numbers" => contact&.dig("details", "phone_numbers")&.map do |phone_number|
{
"label" => phone_number["title"],
"number" => phone_number["number"],
}
end,
"services" => contact&.dig("details", "services")&.map do |service|
{
title: service["title"],
type: service["type"],
}
end,
}
end