Disable address autocomplete where required (nominatim)
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -34,6 +34,21 @@ defmodule Mobilizon.Config do
|
||||
def instance_user_agent,
|
||||
do: "#{instance_name()} #{instance_hostname()} - Mobilizon #{Mix.Project.config()[:version]}"
|
||||
|
||||
@spec instance_geocoding_provider :: atom()
|
||||
def instance_geocoding_provider,
|
||||
do: get_in(Application.get_env(:mobilizon, Mobilizon.Service.Geospatial), [:service])
|
||||
|
||||
@spec instance_geocoding_autocomplete :: boolean
|
||||
def instance_geocoding_autocomplete,
|
||||
do: instance_geocoding_provider() !== Mobilizon.Service.Geospatial.Nominatim
|
||||
|
||||
@spec instance_maps_tiles_endpoint :: String.t()
|
||||
def instance_maps_tiles_endpoint, do: Application.get_env(:mobilizon, :maps)[:tiles][:endpoint]
|
||||
|
||||
@spec instance_maps_tiles_attribution :: String.t()
|
||||
def instance_maps_tiles_attribution,
|
||||
do: Application.get_env(:mobilizon, :maps)[:tiles][:attribution]
|
||||
|
||||
@spec get(module | atom) :: any
|
||||
def get(key), do: get(key, nil)
|
||||
|
||||
|
||||
@@ -32,7 +32,17 @@ defmodule MobilizonWeb.Resolvers.Config do
|
||||
registrations_open: Config.instance_registrations_open?(),
|
||||
description: Config.instance_description(),
|
||||
location: location,
|
||||
country_code: country_code
|
||||
country_code: country_code,
|
||||
geocoding: %{
|
||||
provider: Config.instance_geocoding_provider(),
|
||||
autocomplete: Config.instance_geocoding_autocomplete()
|
||||
},
|
||||
maps: %{
|
||||
tiles: %{
|
||||
endpoint: Config.instance_maps_tiles_endpoint(),
|
||||
attribution: Config.instance_maps_tiles_attribution()
|
||||
}
|
||||
}
|
||||
}}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -15,6 +15,8 @@ defmodule MobilizonWeb.Schema.ConfigType do
|
||||
field(:registrations_open, :boolean)
|
||||
field(:country_code, :string)
|
||||
field(:location, :lonlat)
|
||||
field(:geocoding, :geocoding)
|
||||
field(:maps, :maps)
|
||||
end
|
||||
|
||||
object :lonlat do
|
||||
@@ -23,6 +25,20 @@ defmodule MobilizonWeb.Schema.ConfigType do
|
||||
field(:accuracy_radius, :integer)
|
||||
end
|
||||
|
||||
object :geocoding do
|
||||
field(:autocomplete, :boolean)
|
||||
field(:provider, :string)
|
||||
end
|
||||
|
||||
object :maps do
|
||||
field(:tiles, :tiles)
|
||||
end
|
||||
|
||||
object :tiles do
|
||||
field(:endpoint, :string)
|
||||
field(:attribution, :string)
|
||||
end
|
||||
|
||||
object :config_queries do
|
||||
@desc "Get the instance config"
|
||||
field :config, :config do
|
||||
|
||||
@@ -29,6 +29,8 @@ defmodule Mobilizon.Service.Geospatial.Addok do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
@@ -47,6 +49,8 @@ defmodule Mobilizon.Service.Geospatial.Addok do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@ defmodule Mobilizon.Service.Geospatial.Mimirsbrunn do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
@@ -50,6 +52,8 @@ defmodule Mobilizon.Service.Geospatial.Mimirsbrunn do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -29,6 +29,8 @@ defmodule Mobilizon.Service.Geospatial.Nominatim do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
features |> process_data() |> Enum.filter(& &1)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
@@ -47,6 +49,8 @@ defmodule Mobilizon.Service.Geospatial.Nominatim do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
features |> process_data() |> Enum.filter(& &1)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -30,6 +30,8 @@ defmodule Mobilizon.Service.Geospatial.Pelias do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
@@ -48,6 +50,8 @@ defmodule Mobilizon.Service.Geospatial.Pelias do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -30,6 +30,8 @@ defmodule Mobilizon.Service.Geospatial.Photon do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
@@ -48,6 +50,8 @@ defmodule Mobilizon.Service.Geospatial.Photon do
|
||||
HTTPoison.get(url, headers),
|
||||
{:ok, %{"features" => features}} <- Poison.decode(body) do
|
||||
process_data(features)
|
||||
else
|
||||
_ -> []
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user