Fix tests

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2018-07-04 16:23:52 +02:00
parent 93a97b0865
commit 615e91a05b
8 changed files with 46 additions and 56 deletions

View File

@@ -126,7 +126,7 @@ defmodule Eventos.Addresses do
if Enum.member?(@geom_types, type) do
case type do
:point ->
{:ok, %Geo.Point{coordinates: {data["latitude"], data["longitude"]}, srid: 4326}}
process_point(data["latitude"], data["longitude"])
end
else
{:error, nil}
@@ -137,4 +137,13 @@ defmodule Eventos.Addresses do
def process_geom(nil) do
{:error, nil}
end
@spec process_point(number(), number()) :: tuple()
defp process_point(latitude, longitude) when is_number(latitude) and is_number(longitude) do
{:ok, %Geo.Point{coordinates: {latitude, longitude}, srid: 4326}}
end
defp process_point(_, _) do
{:error, "Latitude and longitude must be numbers"}
end
end

View File

@@ -31,18 +31,21 @@ defmodule EventosWeb.EventController do
end
defp process_event_address(event) do
if Map.has_key?(event, "address_type") && event["address_type"] === :physical do
address = event["physical_address"]
geom = EventosWeb.AddressController.process_geom(address["geom"])
address = case geom do
nil ->
address
_ ->
%{address | "geom" => geom}
end
%{event | "physical_address" => address}
else
event
cond do
Map.has_key?(event, "address_type") && event["address_type"] !== :physical ->
event
Map.has_key?(event, "physical_address") ->
address = event["physical_address"]
geom = EventosWeb.AddressController.process_geom(address["geom"])
address = case geom do
nil ->
address
_ ->
%{address | "geom" => geom}
end
%{event | "physical_address" => address}
true ->
event
end
end