aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-05-15 16:35:33 +0200
committerlain <lain@soykaf.club>2019-05-15 16:35:33 +0200
commit7a92e701b974aa5ee70d617be323292c953d08de (patch)
tree7bc5827972c69bd2339835d330f1805035a8dfbe /lib
parentcbb3451023f557ece773bab20f79ac130f786d01 (diff)
downloadpleroma-7a92e701b974aa5ee70d617be323292c953d08de.tar.gz
CommonAPI: Visibility refactor.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/common_api/common_api.ex20
1 files changed, 7 insertions, 13 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex
index c31e56d4c..29c4c1014 100644
--- a/lib/pleroma/web/common_api/common_api.ex
+++ b/lib/pleroma/web/common_api/common_api.ex
@@ -116,21 +116,16 @@ defmodule Pleroma.Web.CommonAPI do
end
end
- def get_visibility(%{"visibility" => visibility})
+ def get_visibility(%{"visibility" => visibility}, in_reply_to)
when visibility in ~w{public unlisted private direct},
- do: visibility
+ do: {visibility, get_replied_to_visibility(in_reply_to)}
- def get_visibility(%{"in_reply_to_status_id" => status_id}) when not is_nil(status_id) do
- case get_replied_to_activity(status_id) do
- nil ->
- "public"
-
- in_reply_to ->
- get_replied_to_visibility(in_reply_to)
- end
+ def get_visibility(_, in_reply_to) when not is_nil(in_reply_to) do
+ visibility = get_replied_to_visibility(in_reply_to)
+ {visibility, visibility}
end
- def get_visibility(_), do: "public"
+ def get_visibility(_, in_reply_to), do: {"public", get_replied_to_visibility(in_reply_to)}
def get_replied_to_visibility(nil), do: nil
@@ -145,9 +140,8 @@ defmodule Pleroma.Web.CommonAPI do
with status <- String.trim(status),
attachments <- attachments_from_ids(data),
- visibility <- get_visibility(data),
in_reply_to <- get_replied_to_activity(data["in_reply_to_status_id"]),
- in_reply_to_visibility <- get_replied_to_visibility(in_reply_to),
+ {visibility, in_reply_to_visibility} <- get_visibility(data, in_reply_to),
{_, false} <-
{:private_to_public, in_reply_to_visibility == "direct" && visibility != "direct"},
{content_html, mentions, tags} <-