CommonAPI: Support emoji reactions.

This commit is contained in:
lain 2019-08-27 17:56:28 -05:00
parent f017260cdc
commit b770ed1d99
2 changed files with 24 additions and 0 deletions

View file

@ -123,6 +123,16 @@ def unfavorite(id_or_ap_id, user) do
end end
end end
def react_with_emoji(id, user, emoji) do
with %Activity{} = activity <- Activity.get_by_id(id),
object <- Object.normalize(activity) do
ActivityPub.react_with_emoji(user, object, emoji)
else
_ ->
{:error, dgettext("errors", "Could not add reaction emoji")}
end
end
def vote(user, object, choices) do def vote(user, object, choices) do
with "Question" <- object.data["type"], with "Question" <- object.data["type"],
{:author, false} <- {:author, object.data["actor"] == user.ap_id}, {:author, false} <- {:author, object.data["actor"] == user.ap_id},

View file

@ -222,6 +222,20 @@ test "it can handle activities that expire" do
end end
describe "reactions" do describe "reactions" do
test "reacting to a status with an emoji" do
user = insert(:user)
other_user = insert(:user)
{:ok, activity} = CommonAPI.post(other_user, %{"status" => "cofe"})
{:ok, reaction, _} = CommonAPI.react_with_emoji(activity.id, user, "👍")
assert reaction.data["actor"] == user.ap_id
assert reaction.data["content"] == "👍"
# TODO: test error case.
end
test "repeating a status" do test "repeating a status" do
user = insert(:user) user = insert(:user)
other_user = insert(:user) other_user = insert(:user)