2020-01-26 21:11:16 +01:00
|
|
|
defmodule Mobilizon.GraphQL.API.Comments do
|
2018-12-14 17:41:55 +01:00
|
|
|
@moduledoc """
|
2019-09-22 16:26:23 +02:00
|
|
|
API for Comments.
|
2018-12-14 17:41:55 +01:00
|
|
|
"""
|
2020-01-26 21:11:16 +01:00
|
|
|
|
2020-07-09 17:24:28 +02:00
|
|
|
alias Mobilizon.Actors.Actor
|
|
|
|
alias Mobilizon.Discussions.Comment
|
2020-01-22 02:14:42 +01:00
|
|
|
alias Mobilizon.Federation.ActivityPub
|
|
|
|
alias Mobilizon.Federation.ActivityPub.Activity
|
2018-12-14 17:41:55 +01:00
|
|
|
|
|
|
|
@doc """
|
|
|
|
Create a comment
|
|
|
|
|
2019-11-15 18:36:47 +01:00
|
|
|
Creates a comment from an actor
|
2018-12-14 17:41:55 +01:00
|
|
|
"""
|
2020-01-26 21:11:16 +01:00
|
|
|
@spec create_comment(map) :: {:ok, Activity.t(), Comment.t()} | any
|
2019-10-25 17:43:37 +02:00
|
|
|
def create_comment(args) do
|
|
|
|
ActivityPub.create(:comment, args, true)
|
2018-12-14 17:41:55 +01:00
|
|
|
end
|
2019-11-15 18:36:47 +01:00
|
|
|
|
2020-02-18 08:57:00 +01:00
|
|
|
def update_comment(%Comment{} = comment, args) do
|
2020-07-09 17:24:28 +02:00
|
|
|
ActivityPub.update(comment, args, true)
|
2020-02-18 08:57:00 +01:00
|
|
|
end
|
|
|
|
|
2019-11-15 18:36:47 +01:00
|
|
|
@doc """
|
|
|
|
Deletes a comment
|
|
|
|
|
|
|
|
Deletes a comment from an actor
|
|
|
|
"""
|
2020-07-09 17:24:28 +02:00
|
|
|
@spec delete_comment(Comment.t(), Actor.t()) :: {:ok, Activity.t(), Comment.t()} | any
|
|
|
|
def delete_comment(%Comment{} = comment, %Actor{} = actor) do
|
|
|
|
ActivityPub.delete(comment, actor, true)
|
2019-11-15 18:36:47 +01:00
|
|
|
end
|
2018-12-14 17:41:55 +01:00
|
|
|
end
|