@@ -89,6 +89,7 @@ defmodule Mobilizon.GraphQL.Error do
|
||||
defp metadata(:event_not_found), do: {404, dgettext("errors", "Event not found")}
|
||||
defp metadata(:group_not_found), do: {404, dgettext("errors", "Group not found")}
|
||||
defp metadata(:resource_not_found), do: {404, dgettext("errors", "Resource not found")}
|
||||
defp metadata(:discussion_not_found), do: {404, dgettext("errors", "Discussion not found")}
|
||||
defp metadata(:unknown), do: {500, dgettext("errors", "Something went wrong")}
|
||||
|
||||
defp metadata(code) do
|
||||
|
||||
@@ -109,6 +109,8 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
|
||||
end
|
||||
end
|
||||
|
||||
def create_discussion(_, _, _), do: {:error, :unauthenticated}
|
||||
|
||||
def reply_to_discussion(
|
||||
_parent,
|
||||
%{text: text, discussion_id: discussion_id},
|
||||
@@ -141,9 +143,14 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
|
||||
origin_comment_id || previous_in_reply_to_comment_id || last_comment_id
|
||||
}) do
|
||||
{:ok, discussion}
|
||||
else
|
||||
{:no_discussion, _} ->
|
||||
{:error, :discussion_not_found}
|
||||
end
|
||||
end
|
||||
|
||||
def reply_to_discussion(_, _, _), do: {:error, :unauthenticated}
|
||||
|
||||
@spec update_discussion(map(), map(), map()) :: {:ok, Discussion.t()}
|
||||
def update_discussion(
|
||||
_parent,
|
||||
@@ -166,9 +173,14 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
|
||||
}
|
||||
) do
|
||||
{:ok, discussion}
|
||||
else
|
||||
{:member, false} ->
|
||||
{:error, :unauthorized}
|
||||
end
|
||||
end
|
||||
|
||||
def update_discussion(_, _, _), do: {:error, :unauthenticated}
|
||||
|
||||
def delete_discussion(_parent, %{discussion_id: discussion_id}, %{
|
||||
context: %{
|
||||
current_user: %User{} = user
|
||||
@@ -186,8 +198,9 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
|
||||
{:error, dgettext("errors", "No discussion with ID %{id}", id: discussion_id)}
|
||||
|
||||
{:member, _} ->
|
||||
{:error,
|
||||
dgettext("errors", "You are not a member of the group the discussion belongs to")}
|
||||
{:error, :unauthorized}
|
||||
end
|
||||
end
|
||||
|
||||
def delete_discussion(_, _, _), do: {:error, :unauthenticated}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user