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:30:02 +0200
committerRoger Braun <roger@rogerbraun.net>2017-09-09 18:30:02 +0200
commitd625d8db7d6041e85ef7c7c1a8b617c9bba36a98 (patch)
tree5b33af71c1128058b6254aa63d8609cbf576be00 /lib/pleroma/web/common_api/common_api.ex
parent454dc1857074c8a98b4fada6d65ed4a810f1c501 (diff)
downloadpleroma-d625d8db7d6041e85ef7c7c1a8b617c9bba36a98.tar.gz
Add unfav 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 43cec9121..b08138534 100644
--- a/lib/pleroma/web/common_api/common_api.ex
+++ b/lib/pleroma/web/common_api/common_api.ex
@@ -33,6 +33,17 @@ defmodule Pleroma.Web.CommonAPI do
end
end
+ def unfavorite(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.unlike(user, object)
+ else
+ _ ->
+ {:error, "Could not unfavorite"}
+ 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)