Browse Source

UserView: Add acceptsChatMessages field

chores/our-libs-hex-releases
lain 4 years ago
parent
commit
26a7cc3f00
2 changed files with 22 additions and 0 deletions
  1. +10
    -0
      lib/pleroma/web/activity_pub/views/user_view.ex
  2. +12
    -0
      test/web/activity_pub/views/user_view_test.exs

+ 10
- 0
lib/pleroma/web/activity_pub/views/user_view.ex View File

@@ -81,6 +81,15 @@ defmodule Pleroma.Web.ActivityPub.UserView do

fields = Enum.map(user.fields, &Map.put(&1, "type", "PropertyValue"))

chat_message_acceptance =
if is_boolean(user.accepts_chat_messages) do
%{
"acceptsChatMessages" => user.accepts_chat_messages
}
else
%{}
end

%{
"id" => user.ap_id,
"type" => user.actor_type,
@@ -103,6 +112,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do
"tag" => emoji_tags,
"discoverable" => user.discoverable
}
|> Map.merge(chat_message_acceptance)
|> Map.merge(maybe_make_image(&User.avatar_url/2, "icon", user))
|> Map.merge(maybe_make_image(&User.banner_url/2, "image", user))
|> Map.merge(Utils.make_json_ld_header())


+ 12
- 0
test/web/activity_pub/views/user_view_test.exs View File

@@ -158,4 +158,16 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do
assert %{"totalItems" => 1} = UserView.render("following.json", %{user: user})
end
end

describe "acceptsChatMessages" do
test "it returns this value if it is set" do
true_user = insert(:user, accepts_chat_messages: true)
false_user = insert(:user, accepts_chat_messages: false)
nil_user = insert(:user, accepts_chat_messages: nil)

assert %{"acceptsChatMessages" => true} = UserView.render("user.json", user: true_user)
assert %{"acceptsChatMessages" => false} = UserView.render("user.json", user: false_user)
refute Map.has_key?(UserView.render("user.json", user: nil_user), "acceptsChatMessages")
end
end
end

Loading…
Cancel
Save