Add some tests

Also add a unicity constraint on the followers table

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2018-08-03 10:16:22 +02:00
parent 115d1d1a3e
commit e1e9b0fc11
9 changed files with 157 additions and 16 deletions

View File

@@ -32,14 +32,18 @@ defmodule EventosWeb.GroupController do
end
def join(conn, %{"name" => group_name, "actor_name" => actor_name}) do
with group <- Actors.get_group_by_name(group_name),
actor <- Actors.get_local_actor_by_name(actor_name),
with %Actor{} = group <- Actors.get_group_by_name(group_name),
%Actor{} = actor <- Actors.get_local_actor_by_name(actor_name),
%Member{} = member <-
Actors.create_member(%{"parent_id" => group.id, "actor_id" => actor.id}) do
conn
|> put_status(:created)
|> render(EventosWeb.MemberView, "member.json", member: member)
else
nil ->
conn
|> put_status(:not_found)
|> render(EventosWeb.ErrorView, "not_found.json", details: "group or actor doesn't exist")
err ->
require Logger
Logger.debug(inspect(err))