aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/common_api/common_api.ex
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-09-09 18:09:37 +0200
committerRoger Braun <roger@rogerbraun.net>2017-09-09 18:09:37 +0200
commit454dc1857074c8a98b4fada6d65ed4a810f1c501 (patch)
tree30c110ab25d8205c448164f93e06edbbcf33d63f /lib/pleroma/web/common_api/common_api.ex
parent66e4c710d469d7f2177c06e0dafb181d4d4abf30 (diff)
downloadpleroma-454dc1857074c8a98b4fada6d65ed4a810f1c501.tar.gz
Add favoriting to Mastodon API.
Diffstat (limited to 'lib/pleroma/web/common_api/common_api.ex')
-rw-r--r--lib/pleroma/web/common_api/common_api.ex11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex
index b1d2172c7..43cec9121 100644
--- a/lib/pleroma/web/common_api/common_api.ex
+++ b/lib/pleroma/web/common_api/common_api.ex
@@ -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)