refactor: adress review comments
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
0614592674
commit
5deb102e45
11 changed files with 111 additions and 52 deletions
|
|
@ -31,6 +31,7 @@ defmodule Mv.Membership do
|
|||
alias Ash.Error.Query.NotFound, as: NotFoundError
|
||||
alias Mv.Membership.JoinRequest
|
||||
alias MvWeb.Emails.JoinConfirmationEmail
|
||||
require Logger
|
||||
|
||||
admin do
|
||||
show? true
|
||||
|
|
@ -369,8 +370,9 @@ defmodule Mv.Membership do
|
|||
actor = Keyword.get(opts, :actor)
|
||||
token = Map.get(attrs, :confirmation_token) || generate_confirmation_token()
|
||||
|
||||
attrs_with_token =
|
||||
attrs |> Map.drop([:confirmation_token]) |> Map.put(:confirmation_token, token)
|
||||
# Raw token is passed to the submit action; JoinRequest.Changes.SetConfirmationToken
|
||||
# hashes it before persist. Only the hash is stored; the raw token is sent in the email link.
|
||||
attrs_with_token = Map.put(attrs, :confirmation_token, token)
|
||||
|
||||
case Ash.create(JoinRequest, attrs_with_token,
|
||||
action: :submit,
|
||||
|
|
@ -378,8 +380,18 @@ defmodule Mv.Membership do
|
|||
domain: __MODULE__
|
||||
) do
|
||||
{:ok, request} ->
|
||||
JoinConfirmationEmail.send(request.email, token)
|
||||
{:ok, request}
|
||||
case JoinConfirmationEmail.send(request.email, token) do
|
||||
{:ok, _email} ->
|
||||
{:ok, request}
|
||||
|
||||
{:error, reason} ->
|
||||
Logger.error(
|
||||
"Join confirmation email failed for #{request.email}: #{inspect(reason)}"
|
||||
)
|
||||
|
||||
# Request was created; return success so the user sees the confirmation message
|
||||
{:ok, request}
|
||||
end
|
||||
|
||||
error ->
|
||||
error
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue