-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
contact : ajout colonne creation_source (#4225)
- Loading branch information
1 parent
89f1d12
commit 57f1a93
Showing
11 changed files
with
93 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
apps/transport/priv/repo/migrations/20240926074311_contact_add_creation_source.exs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
defmodule DB.Repo.Migrations.ContactAddCreationSource do | ||
use Ecto.Migration | ||
|
||
def change do | ||
alter table(:contact) do | ||
add(:creation_source, :string) | ||
end | ||
|
||
execute( | ||
""" | ||
UPDATE contact | ||
SET creation_source = 'automation:import_contact_point' | ||
WHERE id in ( | ||
SELECT distinct contact_id | ||
FROM notification_subscription | ||
WHERE source = 'automation:import_contact_point' | ||
) | ||
""", | ||
"" | ||
) | ||
|
||
execute( | ||
""" | ||
UPDATE contact | ||
SET creation_source = 'admin' | ||
WHERE creation_source IS NULL | ||
AND (last_login_at IS NULL OR inserted_at::date = '2023-03-02') | ||
""", | ||
"" | ||
) | ||
|
||
execute( | ||
""" | ||
UPDATE contact | ||
SET creation_source = 'datagouv_oauth_login' | ||
WHERE creation_source IS NULL | ||
""", | ||
"" | ||
) | ||
|
||
# Make sure the column is not null | ||
execute("ALTER TABLE contact ALTER COLUMN creation_source SET NOT NULL", "") | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,7 +17,8 @@ defmodule DB.ContactTest do | |
job_title: "Chef SIG", | ||
organization: "Big Corp Inc", | ||
phone_number: "06 82 22 88 03", | ||
secondary_phone_number: "+33 1 99 00 17 45" | ||
secondary_phone_number: "+33 1 99 00 17 45", | ||
creation_source: "admin" | ||
} | ||
|> DB.Contact.insert!() | ||
|
||
|
@@ -150,6 +151,17 @@ defmodule DB.ContactTest do | |
DB.Contact.insert!(%{sample_contact_args() | email: "[email protected]"}) | ||
end | ||
|
||
test "creation_source is required and is an enum" do | ||
assert %Ecto.Changeset{valid?: false, errors: [creation_source: {"can't be blank", [validation: :required]}]} = | ||
DB.Contact.changeset(%DB.Contact{}, %{sample_contact_args() | creation_source: nil}) | ||
|
||
assert %Ecto.Changeset{valid?: false, errors: [creation_source: {"is invalid", _}]} = | ||
DB.Contact.changeset(%DB.Contact{}, %{sample_contact_args() | creation_source: "foobar"}) | ||
|
||
assert %Ecto.Changeset{valid?: true} = | ||
DB.Contact.changeset(%DB.Contact{}, %{sample_contact_args() | creation_source: :admin}) | ||
end | ||
|
||
test "search" do | ||
search_fn = fn args -> args |> DB.Contact.search() |> order_by([contact: c], asc: c.id) |> DB.Repo.all() end | ||
assert search_fn.(%{}) == [] | ||
|
@@ -301,7 +313,8 @@ defmodule DB.ContactTest do | |
email: "john#{Ecto.UUID.generate()}@example.fr", | ||
job_title: "Boss", | ||
organization: "Big Corp Inc", | ||
phone_number: "06 82 22 88 03" | ||
phone_number: "06 82 22 88 03", | ||
creation_source: "admin" | ||
} | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -66,7 +66,8 @@ defmodule TransportWeb.Backoffice.ContactControllerTest do | |
|
||
assert [ | ||
{"li", [], ["first_name : You need to fill either first_name and last_name OR mailing_list_title"]}, | ||
{"li", [], ["email : can't be blank"]} | ||
{"li", [], ["email : can't be blank"]}, | ||
{"li", [], ["creation_source : can't be blank"]} | ||
] == Floki.find(doc, ".notification.error ul li") | ||
end | ||
end | ||
|
@@ -87,7 +88,13 @@ defmodule TransportWeb.Backoffice.ContactControllerTest do | |
|
||
assert redirected_to(conn, 302) == backoffice_contact_path(conn, :index) | ||
|
||
assert %DB.Contact{first_name: "John", last_name: "Doe", email: "[email protected]", organization: "Corp Inc"} = | ||
assert %DB.Contact{ | ||
first_name: "John", | ||
last_name: "Doe", | ||
email: "[email protected]", | ||
organization: "Corp Inc", | ||
creation_source: :admin | ||
} = | ||
DB.Repo.one!(DB.Contact) | ||
|
||
assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Contact mis à jour" | ||
|
@@ -293,7 +300,8 @@ defmodule TransportWeb.Backoffice.ContactControllerTest do | |
email: "john#{Ecto.UUID.generate()}@example.fr", | ||
job_title: "Boss", | ||
organization: "Big Corp Inc", | ||
phone_number: "06 82 22 88 03" | ||
phone_number: "06 82 22 88 03", | ||
creation_source: "admin" | ||
}, | ||
args | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters