From 0c8d2f7e0060a6b1fb8264b9b3a128c9794e423f Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 22 Mar 2019 15:51:23 +0100 Subject: [PATCH] Work around Addresses to bring them properly through GraphQL Got caught with https://github.com/absinthe-graphql/absinthe/issues/601 at some point, that's why fields are renamed Fix tests Signed-off-by: Thomas Citharel --- js/src/graphql/event.ts | 13 ++++++ js/src/types/address.model.ts | 13 ++++++ js/src/types/event.model.ts | 8 +++- js/src/views/Event/Event.vue | 9 +++++ js/src/views/Group/Create.vue | 10 ++--- lib/mobilizon/addresses/address.ex | 20 +++++----- lib/mobilizon/addresses/addresses.ex | 14 ++++++- lib/mobilizon_web/schema.ex | 3 +- lib/mobilizon_web/schema/address.ex | 32 +++++---------- lib/mobilizon_web/schema/event.ex | 9 ++++- .../views/json_ld/object_view.ex | 10 ++--- lib/service/geospatial/addok.ex | 10 ++--- lib/service/geospatial/google_maps.ex | 10 ++--- lib/service/geospatial/map_quest.ex | 10 ++--- lib/service/geospatial/nominatim.ex | 10 ++--- lib/service/geospatial/photon.ex | 10 ++--- .../20190322143724_rename_address_fields.exs | 11 +++++ test/mobilizon/addresses/addresses_test.exs | 40 +++++++++---------- .../service/geospatial/addok_test.exs | 12 +++--- .../service/geospatial/google_maps_test.exs | 20 +++++----- .../service/geospatial/map_quest_test.exs | 20 +++++----- .../service/geospatial/nominatim_test.exs | 20 +++++----- .../service/geospatial/photon_test.exs | 20 +++++----- .../resolvers/address_resolver_test.exs | 1 + test/support/factory.ex | 10 ++--- 25 files changed, 200 insertions(+), 145 deletions(-) create mode 100644 js/src/types/address.model.ts create mode 100644 priv/repo/migrations/20190322143724_rename_address_fields.exs diff --git a/js/src/graphql/event.ts b/js/src/graphql/event.ts index 76171e59a..e8fd78b9c 100644 --- a/js/src/graphql/event.ts +++ b/js/src/graphql/event.ts @@ -29,6 +29,16 @@ export const FETCH_EVENT = gql` category, # online_address, # phone_address, + physicalAddress { + description, + floor, + street, + locality, + postal_code, + region, + country, + geom + } organizerActor { avatarUrl, preferredUsername, @@ -64,6 +74,9 @@ export const FETCH_EVENTS = gql` publishAt, # online_address, # phone_address, + physicalAddress { + description + } organizerActor { avatarUrl, preferredUsername, diff --git a/js/src/types/address.model.ts b/js/src/types/address.model.ts new file mode 100644 index 000000000..f07d6f868 --- /dev/null +++ b/js/src/types/address.model.ts @@ -0,0 +1,13 @@ +export interface IAddress { + description: string; + floor: string; + street: string; + locality: string; + postal_code: string; + region: string; + country: string; + geom: { + lat: number; + lon: number; + } +} diff --git a/js/src/types/event.model.ts b/js/src/types/event.model.ts index 826df09bd..75dae5797 100644 --- a/js/src/types/event.model.ts +++ b/js/src/types/event.model.ts @@ -1,4 +1,5 @@ import { Actor, IActor } from './actor.model'; +import {IAddress} from "@/types/address.model"; export enum EventStatus { TENTATIVE, @@ -67,8 +68,9 @@ export interface IEvent { attributedTo: IActor; participants: IParticipant[]; - // online_address: Address; - // phone_address: string; + onlineAddress?: string; + phoneAddress?: string; + physicalAddress?: IAddress; } @@ -90,4 +92,6 @@ export class EventModel implements IEvent { visibility: EventVisibility = EventVisibility.PUBLIC; attributedTo: IActor = new Actor(); organizerActor: IActor = new Actor(); + onlineAddress: string = ''; + phoneAddress: string = ''; } diff --git a/js/src/views/Event/Event.vue b/js/src/views/Event/Event.vue index c3acf532b..f3cd74642 100644 --- a/js/src/views/Event/Event.vue +++ b/js/src/views/Event/Event.vue @@ -46,6 +46,15 @@
{{ event.beginsOn | formatDate }} - {{ event.endsOn | formatDate }}
+
+

Adresse

+
+ {{ event.physicalAddress.description }}
+ {{ event.physicalAddress.floor }} {{ event.physicalAddress.street }}
+ {{ event.physicalAddress.postal_code }} {{ event.physicalAddress.locality }}
+ {{ event.physicalAddress.region }} {{ event.physicalAddress.country }} +
+

You are an organizer.

diff --git a/js/src/views/Group/Create.vue b/js/src/views/Group/Create.vue index fa90b1479..26a20b7e9 100644 --- a/js/src/views/Group/Create.vue +++ b/js/src/views/Group/Create.vue @@ -76,11 +76,11 @@ export default class CreateGroup extends Vue { latitude: addressData.latitude, longitude: addressData.longitude, }, - addressCountry: addressData.country, - addressLocality: addressData.city, - addressRegion: addressData.administrative_area_level_1, - postalCode: addressData.postal_code, - streetAddress: `${addressData.street_number} ${addressData.route}`, + country: addressData.country, + locality: addressData.city, + region: addressData.administrative_area_level_1, + postal_code: addressData.postal_code, + street: `${addressData.street_number} ${addressData.route}`, }; } } diff --git a/lib/mobilizon/addresses/address.ex b/lib/mobilizon/addresses/address.ex index 44d818b62..405a0af92 100644 --- a/lib/mobilizon/addresses/address.ex +++ b/lib/mobilizon/addresses/address.ex @@ -8,14 +8,14 @@ defmodule Mobilizon.Addresses.Address do # alias Mobilizon.Actors.Actor schema "addresses" do - field(:addressCountry, :string) - field(:addressLocality, :string) - field(:addressRegion, :string) + field(:country, :string) + field(:locality, :string) + field(:region, :string) field(:description, :string) field(:floor, :string) field(:geom, Geo.PostGIS.Geometry) - field(:postalCode, :string) - field(:streetAddress, :string) + field(:postal_code, :string) + field(:street, :string) has_one(:event, Event, foreign_key: :physical_address_id) # has_one(:group, Actor) @@ -29,11 +29,11 @@ defmodule Mobilizon.Addresses.Address do :description, :floor, :geom, - :addressCountry, - :addressLocality, - :addressRegion, - :postalCode, - :streetAddress + :country, + :locality, + :region, + :postal_code, + :street ]) end end diff --git a/lib/mobilizon/addresses/addresses.ex b/lib/mobilizon/addresses/addresses.ex index 78607311f..a0c8c0022 100644 --- a/lib/mobilizon/addresses/addresses.ex +++ b/lib/mobilizon/addresses/addresses.ex @@ -11,6 +11,16 @@ defmodule Mobilizon.Addresses do @geom_types [:point] + @doc false + def data() do + Dataloader.Ecto.new(Repo, query: &query/2) + end + + @doc false + def query(queryable, _params) do + queryable + end + @doc """ Returns the list of addresses. @@ -168,7 +178,7 @@ defmodule Mobilizon.Addresses do query = if country = Keyword.get(options, :country, nil), - do: from(a in query, where: ilike(a.addressCountry, ^"%#{country}%")), + do: from(a in query, where: ilike(a.country, ^"%#{country}%")), else: query Repo.all(query) @@ -198,7 +208,7 @@ defmodule Mobilizon.Addresses do query = if country, - do: from(a in query, where: ilike(a.addressCountry, ^"%#{country}%")), + do: from(a in query, where: ilike(a.country, ^"%#{country}%")), else: query Repo.all(query) diff --git a/lib/mobilizon_web/schema.ex b/lib/mobilizon_web/schema.ex index 4a8f868cf..9d4cf0be1 100644 --- a/lib/mobilizon_web/schema.ex +++ b/lib/mobilizon_web/schema.ex @@ -4,7 +4,7 @@ defmodule MobilizonWeb.Schema do """ use Absinthe.Schema - alias Mobilizon.{Actors, Events, Users} + alias Mobilizon.{Actors, Events, Users, Addresses} alias Mobilizon.Actors.{Actor, Follower, Member} alias Mobilizon.Events.{Event, Comment, Participant} @@ -107,6 +107,7 @@ defmodule MobilizonWeb.Schema do |> Dataloader.add_source(Actors, Actors.data()) |> Dataloader.add_source(Users, Users.data()) |> Dataloader.add_source(Events, Events.data()) + |> Dataloader.add_source(Addresses, Addresses.data()) Map.put(ctx, :loader, loader) end diff --git a/lib/mobilizon_web/schema/address.ex b/lib/mobilizon_web/schema/address.ex index 577ead164..acbdeed76 100644 --- a/lib/mobilizon_web/schema/address.ex +++ b/lib/mobilizon_web/schema/address.ex @@ -5,49 +5,37 @@ defmodule MobilizonWeb.Schema.AddressType do use Absinthe.Schema.Notation alias MobilizonWeb.Resolvers - object :physical_address do - field(:type, :address_type) - field(:geom, :point) - field(:floor, :string) - field(:streetAddress, :string) - field(:addressLocality, :string) - field(:postalCode, :string) - field(:addressRegion, :string) - field(:addressCountry, :string) + object :address do + field(:geom, :point, description: "The geocoordinates for the point where this address is") + field(:floor, :string, description: "The floor this event is at") + field(:street, :string, description: "The address's street name (with number)") + field(:locality, :string, description: "The address's locality") + field(:postal_code, :string) + field(:region, :string) + field(:country, :string) field(:description, :string) - field(:name, :string) end object :phone_address do - field(:type, :address_type) field(:phone, :string) field(:info, :string) end object :online_address do - field(:type, :address_type) field(:url, :string) field(:info, :string) end - @desc "The list of types an address can be" - enum :address_type do - value(:physical, description: "The address is physical, like a postal address") - value(:url, description: "The address is on the Web, like an URL") - value(:phone, description: "The address is a phone number for a conference") - value(:other, description: "The address is something else") - end - object :address_queries do @desc "Search for an address" - field :search_address, type: list_of(:physical_address) do + field :search_address, type: list_of(:address) do arg(:query, non_null(:string)) resolve(&Resolvers.Address.search/3) end @desc "Reverse geocode coordinates" - field :reverse_geocode, type: list_of(:physical_address) do + field :reverse_geocode, type: list_of(:address) do arg(:longitude, non_null(:float)) arg(:latitude, non_null(:float)) diff --git a/lib/mobilizon_web/schema/event.ex b/lib/mobilizon_web/schema/event.ex index 5747aeb50..bcddfd98c 100644 --- a/lib/mobilizon_web/schema/event.ex +++ b/lib/mobilizon_web/schema/event.ex @@ -3,7 +3,7 @@ defmodule MobilizonWeb.Schema.EventType do Schema representation for Event """ use Absinthe.Schema.Notation - alias Mobilizon.Actors + alias Mobilizon.{Actors, Addresses} import Absinthe.Resolution.Helpers, only: [dataloader: 1] import_types(MobilizonWeb.Schema.AddressType) import_types(MobilizonWeb.Schema.Events.ParticipantType) @@ -27,7 +27,12 @@ defmodule MobilizonWeb.Schema.EventType do # TODO replace me with banner field(:large_image, :string, description: "A large picture for the event") field(:publish_at, :datetime, description: "When the event was published") - field(:physical_address, :physical_address, description: "The type of the event's address") + + field(:physical_address, :address, + resolve: dataloader(Addresses), + description: "The type of the event's address" + ) + field(:online_address, :online_address, description: "Online address of the event") field(:phone_address, :phone_address, description: "Phone address for the event") diff --git a/lib/mobilizon_web/views/json_ld/object_view.ex b/lib/mobilizon_web/views/json_ld/object_view.ex index 2c231a13a..9dbb12083 100644 --- a/lib/mobilizon_web/views/json_ld/object_view.ex +++ b/lib/mobilizon_web/views/json_ld/object_view.ex @@ -44,11 +44,11 @@ defmodule MobilizonWeb.JsonLD.ObjectView do "name" => address.description, "address" => %{ "@type" => "PostalAddress", - "streetAddress" => address.streetAddress, - "addressLocality" => address.addressLocality, - "postalCode" => address.postalCode, - "addressRegion" => address.addressRegion, - "addressCountry" => address.addressCountry + "streetAddress" => address.street, + "addressLocality" => address.locality, + "postalCode" => address.postal_code, + "addressRegion" => address.region, + "addressCountry" => address.country } } end diff --git a/lib/service/geospatial/addok.ex b/lib/service/geospatial/addok.ex index 1d0f3f46d..9a65c95be 100644 --- a/lib/service/geospatial/addok.ex +++ b/lib/service/geospatial/addok.ex @@ -63,14 +63,14 @@ defmodule Mobilizon.Service.Geospatial.Addok do features |> Enum.map(fn %{"geometry" => geometry, "properties" => properties} -> %Address{ - addressCountry: Map.get(properties, "country"), - addressLocality: Map.get(properties, "city"), - addressRegion: Map.get(properties, "state"), + country: Map.get(properties, "country"), + locality: Map.get(properties, "city"), + region: Map.get(properties, "state"), description: Map.get(properties, "name") || streetAddress(properties), floor: Map.get(properties, "floor"), geom: Map.get(geometry, "coordinates") |> Provider.coordinates(), - postalCode: Map.get(properties, "postcode"), - streetAddress: properties |> streetAddress() + postal_code: Map.get(properties, "postcode"), + street: properties |> streetAddress() } end) end diff --git a/lib/service/geospatial/google_maps.ex b/lib/service/geospatial/google_maps.ex index becb15773..1d5f8b2f8 100644 --- a/lib/service/geospatial/google_maps.ex +++ b/lib/service/geospatial/google_maps.ex @@ -96,14 +96,14 @@ defmodule Mobilizon.Service.Geospatial.GoogleMaps do end) %Address{ - addressCountry: Map.get(components, "country"), - addressLocality: Map.get(components, "locality"), - addressRegion: Map.get(components, "administrative_area_level_1"), + country: Map.get(components, "country"), + locality: Map.get(components, "locality"), + region: Map.get(components, "administrative_area_level_1"), description: description, floor: nil, geom: [lon, lat] |> Provider.coordinates(), - postalCode: Map.get(components, "postal_code"), - streetAddress: street_address(components) + postal_code: Map.get(components, "postal_code"), + street: street_address(components) } end diff --git a/lib/service/geospatial/map_quest.ex b/lib/service/geospatial/map_quest.ex index ab9dc6f18..b1f1570d8 100644 --- a/lib/service/geospatial/map_quest.ex +++ b/lib/service/geospatial/map_quest.ex @@ -103,14 +103,14 @@ defmodule Mobilizon.Service.Geospatial.MapQuest do defp produceAddress(address, lat, lng) do %Address{ - addressCountry: Map.get(address, "adminArea1"), - addressLocality: Map.get(address, "adminArea5"), - addressRegion: Map.get(address, "adminArea3"), + country: Map.get(address, "adminArea1"), + locality: Map.get(address, "adminArea5"), + region: Map.get(address, "adminArea3"), description: Map.get(address, "street"), floor: Map.get(address, "floor"), geom: [lng, lat] |> Provider.coordinates(), - postalCode: Map.get(address, "postalCode"), - streetAddress: Map.get(address, "street") + postal_code: Map.get(address, "postalCode"), + street: Map.get(address, "street") } end end diff --git a/lib/service/geospatial/nominatim.ex b/lib/service/geospatial/nominatim.ex index fcbbab12c..a4ac719c6 100644 --- a/lib/service/geospatial/nominatim.ex +++ b/lib/service/geospatial/nominatim.ex @@ -67,14 +67,14 @@ defmodule Mobilizon.Service.Geospatial.Nominatim do @spec process_data(map()) :: Address.t() defp process_data(%{"address" => address} = body) do %Address{ - addressCountry: Map.get(address, "country"), - addressLocality: Map.get(address, "city"), - addressRegion: Map.get(address, "state"), + country: Map.get(address, "country"), + locality: Map.get(address, "city"), + region: Map.get(address, "state"), description: Map.get(body, "display_name"), floor: Map.get(address, "floor"), geom: [Map.get(body, "lon"), Map.get(body, "lat")] |> Provider.coordinates(), - postalCode: Map.get(address, "postcode"), - streetAddress: street_address(address) + postal_code: Map.get(address, "postcode"), + street: street_address(address) } end diff --git a/lib/service/geospatial/photon.ex b/lib/service/geospatial/photon.ex index 233694730..75d6a37b3 100644 --- a/lib/service/geospatial/photon.ex +++ b/lib/service/geospatial/photon.ex @@ -65,14 +65,14 @@ defmodule Mobilizon.Service.Geospatial.Photon do features |> Enum.map(fn %{"geometry" => geometry, "properties" => properties} -> %Address{ - addressCountry: Map.get(properties, "country"), - addressLocality: Map.get(properties, "city"), - addressRegion: Map.get(properties, "state"), + country: Map.get(properties, "country"), + locality: Map.get(properties, "city"), + region: Map.get(properties, "state"), description: Map.get(properties, "name") || streetAddress(properties), floor: Map.get(properties, "floor"), geom: Map.get(geometry, "coordinates") |> Provider.coordinates(), - postalCode: Map.get(properties, "postcode"), - streetAddress: properties |> streetAddress() + postal_code: Map.get(properties, "postcode"), + street: properties |> streetAddress() } end) end diff --git a/priv/repo/migrations/20190322143724_rename_address_fields.exs b/priv/repo/migrations/20190322143724_rename_address_fields.exs new file mode 100644 index 000000000..3c10f180a --- /dev/null +++ b/priv/repo/migrations/20190322143724_rename_address_fields.exs @@ -0,0 +1,11 @@ +defmodule Mobilizon.Repo.Migrations.RenameAddressFields do + use Ecto.Migration + + def change do + rename(table(:addresses), :addressCountry, to: :country) + rename(table(:addresses), :addressLocality, to: :locality) + rename(table(:addresses), :addressRegion, to: :region) + rename(table(:addresses), :postalCode, to: :postal_code) + rename(table(:addresses), :streetAddress, to: :street) + end +end diff --git a/test/mobilizon/addresses/addresses_test.exs b/test/mobilizon/addresses/addresses_test.exs index d737300b8..04b6f78b1 100644 --- a/test/mobilizon/addresses/addresses_test.exs +++ b/test/mobilizon/addresses/addresses_test.exs @@ -7,23 +7,23 @@ defmodule Mobilizon.AddressesTest do alias Mobilizon.Addresses.Address @valid_attrs %{ - addressCountry: "some addressCountry", - addressLocality: "some addressLocality", - addressRegion: "some addressRegion", + country: "some addressCountry", + locality: "some addressLocality", + region: "some addressRegion", description: "some description", floor: "some floor", - postalCode: "some postalCode", - streetAddress: "some streetAddress", + postal_code: "some postalCode", + street: "some streetAddress", geom: %Geo.Point{coordinates: {10, -10}, srid: 4326} } @update_attrs %{ - addressCountry: "some updated addressCountry", - addressLocality: "some updated addressLocality", - addressRegion: "some updated addressRegion", + country: "some updated addressCountry", + locality: "some updated addressLocality", + region: "some updated addressRegion", description: "some updated description", floor: "some updated floor", - postalCode: "some updated postalCode", - streetAddress: "some updated streetAddress", + postal_code: "some updated postalCode", + street: "some updated streetAddress", geom: %Geo.Point{coordinates: {20, -20}, srid: 4326} } # @invalid_attrs %{ @@ -58,25 +58,25 @@ defmodule Mobilizon.AddressesTest do test "create_address/1 with valid data creates a address" do assert {:ok, %Address{} = address} = Addresses.create_address(@valid_attrs) - assert address.addressCountry == "some addressCountry" - assert address.addressLocality == "some addressLocality" - assert address.addressRegion == "some addressRegion" + assert address.country == "some addressCountry" + assert address.locality == "some addressLocality" + assert address.region == "some addressRegion" assert address.description == "some description" assert address.floor == "some floor" - assert address.postalCode == "some postalCode" - assert address.streetAddress == "some streetAddress" + assert address.postal_code == "some postalCode" + assert address.street == "some streetAddress" end test "update_address/2 with valid data updates the address" do address = address_fixture() assert {:ok, %Address{} = address} = Addresses.update_address(address, @update_attrs) - assert address.addressCountry == "some updated addressCountry" - assert address.addressLocality == "some updated addressLocality" - assert address.addressRegion == "some updated addressRegion" + assert address.country == "some updated addressCountry" + assert address.locality == "some updated addressLocality" + assert address.region == "some updated addressRegion" assert address.description == "some updated description" assert address.floor == "some updated floor" - assert address.postalCode == "some updated postalCode" - assert address.streetAddress == "some updated streetAddress" + assert address.postal_code == "some updated postalCode" + assert address.street == "some updated streetAddress" end test "delete_address/1 deletes the address" do diff --git a/test/mobilizon/service/geospatial/addok_test.exs b/test/mobilizon/service/geospatial/addok_test.exs index cbf9de19f..e28cf7beb 100644 --- a/test/mobilizon/service/geospatial/addok_test.exs +++ b/test/mobilizon/service/geospatial/addok_test.exs @@ -35,10 +35,10 @@ defmodule Mobilizon.Service.Geospatial.AddokTest do test "returns a valid address from search" do use_cassette "geospatial/addok/search" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326} } == Addok.search("10 rue Jangot") |> hd end @@ -47,10 +47,10 @@ defmodule Mobilizon.Service.Geospatial.AddokTest do test "returns a valid address from reverse geocode" do use_cassette "geospatial/addok/geocode" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326} } == Addok.geocode(4.842569, 45.751718) |> hd end diff --git a/test/mobilizon/service/geospatial/google_maps_test.exs b/test/mobilizon/service/geospatial/google_maps_test.exs index 10cd84c76..c8adb354d 100644 --- a/test/mobilizon/service/geospatial/google_maps_test.exs +++ b/test/mobilizon/service/geospatial/google_maps_test.exs @@ -42,12 +42,12 @@ defmodule Mobilizon.Service.Geospatial.GoogleMapsTest do test "returns a valid address from search" do use_cassette "geospatial/google_maps/search" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot, 69007 Lyon, France", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "France", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "France", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.8424032, 45.75164940000001}, properties: %{}, @@ -60,12 +60,12 @@ defmodule Mobilizon.Service.Geospatial.GoogleMapsTest do test "returns a valid address from reverse geocode" do use_cassette "geospatial/google_maps/geocode" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot, 69007 Lyon, France", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "France", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "France", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.8424967, 45.751725}, properties: %{}, diff --git a/test/mobilizon/service/geospatial/map_quest_test.exs b/test/mobilizon/service/geospatial/map_quest_test.exs index 6dc03684e..51d5646a8 100644 --- a/test/mobilizon/service/geospatial/map_quest_test.exs +++ b/test/mobilizon/service/geospatial/map_quest_test.exs @@ -45,12 +45,12 @@ defmodule Mobilizon.Service.Geospatial.MapQuestTest do test "returns a valid address from search" do use_cassette "geospatial/map_quest/search" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "FR", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "FR", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.842566, 45.751714}, properties: %{}, @@ -65,12 +65,12 @@ defmodule Mobilizon.Service.Geospatial.MapQuestTest do test "returns a valid address from reverse geocode" do use_cassette "geospatial/map_quest/geocode" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "FR", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "FR", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.842569, 45.751718}, properties: %{}, diff --git a/test/mobilizon/service/geospatial/nominatim_test.exs b/test/mobilizon/service/geospatial/nominatim_test.exs index 29964ad56..169b2c5aa 100644 --- a/test/mobilizon/service/geospatial/nominatim_test.exs +++ b/test/mobilizon/service/geospatial/nominatim_test.exs @@ -28,13 +28,13 @@ defmodule Mobilizon.Service.Geospatial.NominatimTest do test "returns a valid address from search" do use_cassette "geospatial/nominatim/search" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10, Rue Jangot, La Guillotière, Lyon 7e Arrondissement, Lyon, Métropole de Lyon, Departemental constituency of Rhône, Auvergne-Rhône-Alpes, Metropolitan France, 69007, France", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "France", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "France", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.8425657, 45.7517141}, properties: %{}, @@ -47,13 +47,13 @@ defmodule Mobilizon.Service.Geospatial.NominatimTest do test "returns a valid address from reverse geocode" do use_cassette "geospatial/nominatim/geocode" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10, Rue Jangot, La Guillotière, Lyon 7e Arrondissement, Lyon, Métropole de Lyon, Circonscription départementale du Rhône, Auvergne-Rhône-Alpes, France métropolitaine, 69007, France", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "France", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "France", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.8425657, 45.7517141}, properties: %{}, diff --git a/test/mobilizon/service/geospatial/photon_test.exs b/test/mobilizon/service/geospatial/photon_test.exs index 51db05fd4..6d9c3872f 100644 --- a/test/mobilizon/service/geospatial/photon_test.exs +++ b/test/mobilizon/service/geospatial/photon_test.exs @@ -26,12 +26,12 @@ defmodule Mobilizon.Service.Geospatial.PhotonTest do test "returns a valid address from search" do use_cassette "geospatial/photon/search" do assert %Address{ - addressLocality: "Lyon", + locality: "Lyon", description: "10 Rue Jangot", - addressRegion: "Auvergne-Rhône-Alpes", - addressCountry: "France", - postalCode: "69007", - streetAddress: "10 Rue Jangot", + region: "Auvergne-Rhône-Alpes", + country: "France", + postal_code: "69007", + street: "10 Rue Jangot", geom: %Geo.Point{ coordinates: {4.8425657, 45.7517141}, properties: %{}, @@ -45,12 +45,12 @@ defmodule Mobilizon.Service.Geospatial.PhotonTest do # test "returns a valid address from reverse geocode" do # use_cassette "geospatial/photon/geocode" do # assert %Address{ - # addressLocality: "Lyon", + # locality: "Lyon", # description: "", - # addressRegion: "Auvergne-Rhône-Alpes", - # addressCountry: "France", - # postalCode: "69007", - # streetAddress: "10 Rue Jangot", + # region: "Auvergne-Rhône-Alpes", + # country: "France", + # postal_code: "69007", + # street: "10 Rue Jangot", # geom: %Geo.Point{ # coordinates: {4.8425657, 45.7517141}, # properties: %{}, diff --git a/test/mobilizon_web/resolvers/address_resolver_test.exs b/test/mobilizon_web/resolvers/address_resolver_test.exs index dfaf79cca..a97d36ec4 100644 --- a/test/mobilizon_web/resolvers/address_resolver_test.exs +++ b/test/mobilizon_web/resolvers/address_resolver_test.exs @@ -10,6 +10,7 @@ defmodule MobilizonWeb.Resolvers.AddressResolverTest do query = """ { searchAddress(query: "10 Rue Jangot") { + street, description, geom } diff --git a/test/support/factory.ex b/test/support/factory.ex index ba31afd4b..324ec689f 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -72,11 +72,11 @@ defmodule Mobilizon.Factory do description: sequence("MyAddress"), geom: %Geo.Point{coordinates: {45.75, 4.85}, srid: 4326}, floor: "Myfloor", - addressCountry: "My Country", - addressLocality: "My Locality", - addressRegion: "My Region", - postalCode: "My Postal Code", - streetAddress: "My Street Address" + country: "My Country", + locality: "My Locality", + region: "My Region", + postal_code: "My Postal Code", + street: "My Street Address" } end