Reuse existing addresses when creating an event
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -15,7 +15,8 @@ defmodule Mobilizon.Addresses.Address do
|
||||
:region,
|
||||
:postal_code,
|
||||
:street,
|
||||
:url
|
||||
:url,
|
||||
:origin_id
|
||||
]
|
||||
@required [
|
||||
:url
|
||||
@@ -31,6 +32,7 @@ defmodule Mobilizon.Addresses.Address do
|
||||
field(:postal_code, :string)
|
||||
field(:street, :string)
|
||||
field(:url, :string)
|
||||
field(:origin_id, :string)
|
||||
has_many(:event, Event, foreign_key: :physical_address_id)
|
||||
|
||||
timestamps()
|
||||
|
||||
@@ -50,6 +50,8 @@ defmodule Mobilizon.Addresses do
|
||||
"""
|
||||
def get_address!(id), do: Repo.get!(Address, id)
|
||||
|
||||
def get_address(id), do: Repo.get(Address, id)
|
||||
|
||||
@doc """
|
||||
Gets a single address by it's url
|
||||
|
||||
@@ -80,7 +82,10 @@ defmodule Mobilizon.Addresses do
|
||||
def create_address(attrs \\ %{}) do
|
||||
%Address{}
|
||||
|> Address.changeset(attrs)
|
||||
|> Repo.insert()
|
||||
|> Repo.insert(
|
||||
on_conflict: :replace_all_except_primary_key,
|
||||
conflict_target: [:origin_id]
|
||||
)
|
||||
end
|
||||
|
||||
@doc """
|
||||
|
||||
Reference in New Issue
Block a user