Introduce Mimirsbrunn geocoder and improve addresses & maps

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2019-11-08 19:37:14 +01:00
parent 0e7cf89492
commit c599a47d58
36 changed files with 940 additions and 267 deletions

View File

@@ -4,16 +4,35 @@ defmodule MobilizonWeb.Resolvers.Config do
"""
alias Mobilizon.Config
alias Geolix.Adapter.MMDB2.Record.{Country, Location}
@doc """
Gets config.
"""
def get_config(_parent, _params, _context) do
def get_config(_parent, _params, %{
context: %{ip: ip}
}) do
geolix = Geolix.lookup(ip)
country_code =
case geolix.city do
%{country: %Country{iso_code: country_code}} -> String.downcase(country_code)
_ -> nil
end
location =
case geolix.city do
%{location: %Location{} = location} -> Map.from_struct(location)
_ -> nil
end
{:ok,
%{
name: Config.instance_name(),
registrations_open: Config.instance_registrations_open?(),
description: Config.instance_description()
description: Config.instance_description(),
location: location,
country_code: country_code
}}
end
end