aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-07-03 13:38:59 +0200
committerlain <lain@soykaf.club>2020-07-03 13:38:59 +0200
commit26a7cc3f003d79d6026d67a3a8370516b13c2c90 (patch)
tree13d8cf411d284344e64245620bb2ee067773c567
parentdb76c26469f234ca36e9c16deb01de63055535ae (diff)
downloadpleroma-26a7cc3f003d79d6026d67a3a8370516b13c2c90.tar.gz
UserView: Add acceptsChatMessages field
-rw-r--r--lib/pleroma/web/activity_pub/views/user_view.ex10
-rw-r--r--test/web/activity_pub/views/user_view_test.exs12
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex
index 4a02b09a1..d062d6230 100644
--- a/lib/pleroma/web/activity_pub/views/user_view.ex
+++ b/lib/pleroma/web/activity_pub/views/user_view.ex
@@ -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())
diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs
index bec15a996..3b4a1bcde 100644
--- a/test/web/activity_pub/views/user_view_test.exs
+++ b/test/web/activity_pub/views/user_view_test.exs
@@ -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