More test stuff

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2018-11-28 17:16:23 +01:00
parent afb9b797ba
commit 534138f775
8 changed files with 86 additions and 79 deletions

View File

@@ -1,6 +1,7 @@
defmodule MobilizonWeb.Resolvers.User do
alias Mobilizon.Actors.{User, Actor}
alias Mobilizon.Actors
require Logger
@doc """
Find an user by it's ID
@@ -56,11 +57,18 @@ defmodule MobilizonWeb.Resolvers.User do
Validate an user, get it's actor and a token
"""
def validate_user(_parent, %{token: token}, _resolution) do
with {:ok, %User{} = user} <-
Mobilizon.Actors.Service.Activation.check_confirmation_token(token),
%Actor{} = actor <- Actors.get_actor_for_user(user),
{:ok, token, _} <- MobilizonWeb.Guardian.encode_and_sign(user) do
with {:check_confirmation_token, {:ok, %User{} = user}} <-
{:check_confirmation_token,
Mobilizon.Actors.Service.Activation.check_confirmation_token(token)},
{:get_actor, %Actor{} = actor} <- {:get_actor, Actors.get_actor_for_user(user)},
{:guardian_encode_and_sign, {:ok, token, _}} <-
{:guardian_encode_and_sign, MobilizonWeb.Guardian.encode_and_sign(user)} do
{:ok, %{token: token, user: user, person: actor}}
else
err ->
Logger.info("Unable to validate user with token #{token}")
Logger.debug(inspect(err))
{:error, :validation_failed}
end
end
@@ -116,8 +124,8 @@ defmodule MobilizonWeb.Resolvers.User do
def change_default_actor(_parent, %{preferred_username: username}, %{
context: %{current_user: user}
}) do
with %Actor{id: id} <- Actors.get_local_actor_by_name(username) do
Actors.update_user(user, %{default_actor_id: id})
with %Actor{} = actor <- Actors.get_local_actor_by_name(username) do
Actors.update_user(user, %{default_actor: actor})
end
end
end

View File

@@ -177,8 +177,7 @@ defmodule MobilizonWeb.Schema do
description: "The user's list of profiles (identities)"
)
# TODO: This shouldn't be an ID, but the actor itself
field(:default_actor_id, non_null(:integer), description: "The user's default actor")
field(:default_actor, non_null(:person), description: "The user's default actor")
field(:confirmed_at, :datetime,
description: "The datetime when the user was confirmed/activated"