cc820d6b63
* Data doesn't need anymore to be converted to ActivityStream format to be saved (this was taken from Pleroma and not at all a good idea here) * Everything saved when creating an event is inserted into PostgreSQL in a single transaction
28 lines
755 B
Elixir
28 lines
755 B
Elixir
defmodule MobilizonWeb.Resolvers.Comment do
|
|
@moduledoc """
|
|
Handles the comment-related GraphQL calls.
|
|
"""
|
|
|
|
alias Mobilizon.Events.Comment
|
|
alias Mobilizon.Users.User
|
|
alias Mobilizon.Actors.Actor
|
|
|
|
alias MobilizonWeb.API.Comments
|
|
|
|
require Logger
|
|
|
|
def create_comment(_parent, %{text: text, actor_id: actor_id}, %{
|
|
context: %{current_user: %User{} = user}
|
|
}) do
|
|
with {:is_owned, %Actor{} = _organizer_actor} <- User.owns_actor(user, actor_id),
|
|
{:ok, _, %Comment{} = comment} <-
|
|
Comments.create_comment(%{actor_id: actor_id, text: text}) do
|
|
{:ok, comment}
|
|
end
|
|
end
|
|
|
|
def create_comment(_parent, _args, %{}) do
|
|
{:error, "You are not allowed to create a comment if not connected"}
|
|
end
|
|
end
|