Fix report content stopping to be nullable

This commit is contained in:
rinpatch 2019-06-16 12:57:58 +03:00
parent 44de34d170
commit bf6aa6f1a8
2 changed files with 11 additions and 4 deletions

View file

@ -24,6 +24,13 @@ def render("show.json", %{report: report}) do
[account_ap_id | status_ap_ids] = report.data["object"] [account_ap_id | status_ap_ids] = report.data["object"]
account = User.get_cached_by_ap_id(account_ap_id) account = User.get_cached_by_ap_id(account_ap_id)
content =
unless is_nil(report.data["content"]) do
HTML.filter_tags(report.data["content"])
else
nil
end
statuses = statuses =
Enum.map(status_ap_ids, fn ap_id -> Enum.map(status_ap_ids, fn ap_id ->
Activity.get_by_ap_id_with_object(ap_id) Activity.get_by_ap_id_with_object(ap_id)
@ -33,7 +40,7 @@ def render("show.json", %{report: report}) do
id: report.id, id: report.id,
account: AccountView.render("account.json", %{user: account}), account: AccountView.render("account.json", %{user: account}),
actor: AccountView.render("account.json", %{user: user}), actor: AccountView.render("account.json", %{user: user}),
content: HTML.filter_tags(report.data["content"]), content: content,
created_at: created_at, created_at: created_at,
statuses: StatusView.render("index.json", %{activities: statuses, as: :activity}), statuses: StatusView.render("index.json", %{activities: statuses, as: :activity}),
state: report.data["state"] state: report.data["state"]

View file

@ -17,7 +17,7 @@ test "renders a report" do
{:ok, activity} = CommonAPI.report(user, %{"account_id" => other_user.id}) {:ok, activity} = CommonAPI.report(user, %{"account_id" => other_user.id})
expected = %{ expected = %{
content: "", content: nil,
actor: AccountView.render("account.json", %{user: user}), actor: AccountView.render("account.json", %{user: user}),
account: AccountView.render("account.json", %{user: other_user}), account: AccountView.render("account.json", %{user: other_user}),
statuses: [], statuses: [],
@ -41,7 +41,7 @@ test "includes reported statuses" do
CommonAPI.report(user, %{"account_id" => other_user.id, "status_ids" => [activity.id]}) CommonAPI.report(user, %{"account_id" => other_user.id, "status_ids" => [activity.id]})
expected = %{ expected = %{
content: "", content: nil,
actor: AccountView.render("account.json", %{user: user}), actor: AccountView.render("account.json", %{user: user}),
account: AccountView.render("account.json", %{user: other_user}), account: AccountView.render("account.json", %{user: other_user}),
statuses: [StatusView.render("status.json", %{activity: activity})], statuses: [StatusView.render("status.json", %{activity: activity})],
@ -92,7 +92,7 @@ test "sanitizes report description" do
data = Map.put(activity.data, "content", "<script> alert('hecked :D:D:D:D:D:D:D') </script>") data = Map.put(activity.data, "content", "<script> alert('hecked :D:D:D:D:D:D:D') </script>")
activity = Map.put(activity, :data, data) activity = Map.put(activity, :data, data)
refute %{content: "<script> alert('hecked :D:D:D:D:D:D:D') </script>"} == refute "<script> alert('hecked :D:D:D:D:D:D:D') </script>" ==
ReportView.render("show.json", %{report: activity})[:content] ReportView.render("show.json", %{report: activity})[:content]
end end
end end