Add current user to mentioned

This commit is contained in:
Maxim Filippov 2019-01-19 04:25:15 +03:00
parent e116e55cab
commit 651a1d64b5
6 changed files with 14 additions and 9 deletions

View File

@ -155,7 +155,7 @@ def to_map(
repeated = opts[:for] && opts[:for].ap_id in (object["announcements"] || []) repeated = opts[:for] && opts[:for].ap_id in (object["announcements"] || [])
pinned = activity.id in user.info.pinned_activities pinned = activity.id in user.info.pinned_activities
mentions = opts[:mentioned] || [] mentions = get_mentioned_users(opts[:mentioned] || [], user)
attentions = attentions =
activity.recipients activity.recipients
@ -224,6 +224,10 @@ def conversation_id(activity) do
end end
end end
defp get_mentioned_users(mentioned, user) do
mentioned ++ [user]
end
defp to_boolean(false) do defp to_boolean(false) do
false false
end end

View File

@ -672,12 +672,13 @@ test "get recipients from activity" do
"status" => "hey @#{addressed.nickname} @#{addressed_remote.nickname}" "status" => "hey @#{addressed.nickname} @#{addressed_remote.nickname}"
}) })
assert [addressed] == User.get_recipients_from_activity(activity) assert Enum.map([actor, addressed], & &1.ap_id) --
Enum.map(User.get_recipients_from_activity(activity), & &1.ap_id) == []
{:ok, user} = User.follow(user, actor) {:ok, user} = User.follow(user, actor)
{:ok, _user_two} = User.follow(user_two, actor) {:ok, _user_two} = User.follow(user_two, actor)
recipients = User.get_recipients_from_activity(activity) recipients = User.get_recipients_from_activity(activity)
assert length(recipients) == 2 assert length(recipients) == 3
assert user in recipients assert user in recipients
assert addressed in recipients assert addressed in recipients
end end

View File

@ -160,7 +160,7 @@ test "removes doubled 'to' recipients" do
assert activity.data["to"] == ["user1", "user2"] assert activity.data["to"] == ["user1", "user2"]
assert activity.actor == user.ap_id assert activity.actor == user.ap_id
assert activity.recipients == ["user1", "user2"] assert activity.recipients == ["user1", "user2", user.ap_id]
end end
end end

View File

@ -147,7 +147,7 @@ test "posting a direct status", %{conn: conn} do
assert %{"id" => id, "visibility" => "direct"} = json_response(conn, 200) assert %{"id" => id, "visibility" => "direct"} = json_response(conn, 200)
assert activity = Repo.get(Activity, id) assert activity = Repo.get(Activity, id)
assert activity.recipients == [user2.ap_id] assert activity.recipients == [user2.ap_id, user1.ap_id]
assert activity.data["to"] == [user2.ap_id] assert activity.data["to"] == [user2.ap_id]
assert activity.data["cc"] == [] assert activity.data["cc"] == []
end end

View File

@ -119,7 +119,9 @@ test "contains mentions" do
status = StatusView.render("status.json", %{activity: activity}) status = StatusView.render("status.json", %{activity: activity})
assert status.mentions == [AccountView.render("mention.json", %{user: user})] actor = Repo.get_by(User, ap_id: activity.actor)
assert status.mentions == Enum.map([user, actor], fn u -> AccountView.render("mention.json", %{user: u}) end)
end end
test "attachments" do test "attachments" do

View File

@ -118,9 +118,7 @@ test "a create activity with a note" do
expected = %{ expected = %{
"activity_type" => "post", "activity_type" => "post",
"attachments" => [], "attachments" => [],
"attentions" => [ "attentions" => Enum.map([other_user, user], fn u -> UserView.render("show.json", %{user: u}) end),
UserView.render("show.json", %{user: other_user})
],
"created_at" => activity.data["object"]["published"] |> Utils.date_to_asctime(), "created_at" => activity.data["object"]["published"] |> Utils.date_to_asctime(),
"external_url" => activity.data["object"]["id"], "external_url" => activity.data["object"]["id"],
"fave_num" => 0, "fave_num" => 0,