Skip to content

Commit 019a7cf

Browse files
committed
upd
1 parent adff6fc commit 019a7cf

File tree

3 files changed

+37
-38
lines changed

3 files changed

+37
-38
lines changed

‎lib/game_server/accounts.ex‎

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -190,44 +190,40 @@ defmodule GameServer.Accounts do
190190
is_first_user = Repo.aggregate(User, :count, :id) == 0
191191
attrs = if is_first_user, do: Map.put(attrs, "is_admin", true), else: attrs
192192

193-
case Repo.transaction(fn ->
194-
case %User{}
195-
|> User.email_changeset(attrs)
196-
|> maybe_attach_device(attrs)
197-
|> Repo.insert() do
198-
{:ok, %User{} = user} ->
199-
if is_first_user do
200-
user
201-
else
202-
# build and persist token then attempt delivery
203-
{encoded_token, user_token} = UserToken.build_email_token(user, "confirm")
204-
Repo.insert!(user_token)
205-
206-
case notifier.deliver_confirmation_instructions(
207-
user,
208-
confirmation_url_fun.(encoded_token)
209-
) do
210-
{:ok, _} ->
211-
user
212-
213-
{:error, reason} ->
214-
# rollback entire transaction so the user and token are not persisted
215-
Repo.rollback(reason)
216-
end
217-
end
218-
219-
{:error, %Ecto.Changeset{} = changeset} ->
220-
Repo.rollback(changeset)
221-
222-
err ->
223-
Repo.rollback(err)
224-
end
225-
end) do
226-
{:ok, %User{} = user} ->
227-
{:ok, user}
193+
transaction_fun = fn ->
194+
changeset =
195+
%User{}
196+
|> User.email_changeset(attrs)
197+
|> maybe_attach_device(attrs)
198+
199+
case Repo.insert(changeset) do
200+
{:ok, %User{} = user} ->
201+
if is_first_user do
202+
user
203+
else
204+
{encoded_token, user_token} = UserToken.build_email_token(user, "confirm")
205+
Repo.insert!(user_token)
206+
207+
case notifier.deliver_confirmation_instructions(
208+
user,
209+
confirmation_url_fun.(encoded_token)
210+
) do
211+
{:ok, _} -> user
212+
{:error, reason} -> Repo.rollback(reason)
213+
end
214+
end
215+
216+
{:error, %Ecto.Changeset{} = changeset} ->
217+
Repo.rollback(changeset)
218+
219+
err ->
220+
Repo.rollback(err)
221+
end
222+
end
228223

229-
{:error, reason} ->
230-
{:error, reason}
224+
case Repo.transaction(transaction_fun) do
225+
{:ok, %User{} = user} -> {:ok, user}
226+
{:error, reason} -> {:error, reason}
231227
end
232228
end
233229

‎lib/game_server_web/live/admin_live/config.ex‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
defmodule GameServerWeb.AdminLive.Config do
22
use GameServerWeb, :live_view
33

4+
alias GameServer.Accounts.UserNotifier
45
alias GameServer.Theme.JSONConfig
56

67
@impl true

‎modules/example_config.json‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@
55
"css": "/assets/css/theme/example_theme.css",
66
"logo": "/images/example_logo.png",
77
"favicon": "/images/example_favicon.ico",
8-
"banner": "/images/example_banner.png"
8+
"banner": "/images/example_banner.png",
9+
"useful_links": [],
10+
"features": []
911
}

0 commit comments

Comments
 (0)