forked from AkkomaGang/akkoma
CommonAPI: Support emoji reactions.
This commit is contained in:
parent
f017260cdc
commit
b770ed1d99
2 changed files with 24 additions and 0 deletions
|
@ -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},
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue