feat(activitypub): allow simple text for address field
Closes #1387 Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -24,16 +24,23 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Address do
|
||||
}
|
||||
|
||||
res =
|
||||
if is_nil(object["address"]) or not is_map(object["address"]) do
|
||||
res
|
||||
else
|
||||
Map.merge(res, %{
|
||||
"country" => object["address"]["addressCountry"],
|
||||
"postal_code" => object["address"]["postalCode"],
|
||||
"region" => object["address"]["addressRegion"],
|
||||
"street" => object["address"]["streetAddress"],
|
||||
"locality" => object["address"]["addressLocality"]
|
||||
})
|
||||
cond do
|
||||
is_binary(object["address"]) ->
|
||||
Map.merge(res, %{
|
||||
"street" => object["address"]
|
||||
})
|
||||
|
||||
is_map(object["address"]) ->
|
||||
Map.merge(res, %{
|
||||
"country" => object["address"]["addressCountry"],
|
||||
"postal_code" => object["address"]["postalCode"],
|
||||
"region" => object["address"]["addressRegion"],
|
||||
"street" => object["address"]["streetAddress"],
|
||||
"locality" => object["address"]["addressLocality"]
|
||||
})
|
||||
|
||||
is_nil(object["address"]) ->
|
||||
res
|
||||
end
|
||||
|
||||
latitude = Map.get(object, "latitude")
|
||||
|
||||
@@ -278,8 +278,8 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Utils do
|
||||
end
|
||||
|
||||
@spec get_address(map | binary | nil) :: Address.t() | nil
|
||||
def get_address(address_url) when is_binary(address_url) do
|
||||
get_address(%{"id" => address_url})
|
||||
def get_address(text_address) when is_binary(text_address) do
|
||||
get_address(%{"type" => "Place", "name" => text_address})
|
||||
end
|
||||
|
||||
def get_address(%{"id" => url} = map) when is_map(map) and is_binary(url) do
|
||||
|
||||
Reference in New Issue
Block a user