Add favoriting to Mastodon API.

This commit is contained in:
Roger Braun 2017-09-09 18:09:37 +02:00
commit 454dc18570
8 changed files with 47 additions and 21 deletions

View file

@ -22,6 +22,17 @@ defmodule Pleroma.Web.CommonAPI do
end
end
def favorite(id_or_ap_id, user) do
with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id),
false <- activity.data["actor"] == user.ap_id,
object <- Object.get_by_ap_id(activity.data["object"]["id"]) do
ActivityPub.like(user, object)
else
_ ->
{:error, "Could not favorite"}
end
end
# This is a hack for twidere.
def get_by_id_or_ap_id(id) do
activity = Repo.get(Activity, id) || Activity.get_create_activity_by_object_ap_id(id)