aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2018-12-14 22:56:37 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2018-12-14 23:16:12 +0300
commitea72ac549b2ac52623462d6862154fb6f800c01c (patch)
treec6c1cfc6cc6e478311b480c2408e92494702caba
parentd3ec09bb380bb990bea6edc5dae6bbda7f2322c5 (diff)
downloadpleroma-ea72ac549b2ac52623462d6862154fb6f800c01c.tar.gz
fix case when tags is invalid
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex4
-rw-r--r--test/web/mastodon_api/status_view_test.exs13
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex
index f2a47f594..46c559e3a 100644
--- a/lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/status_view.ex
@@ -244,8 +244,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
{"name": "nextcloud", "url": "/tag/nextcloud"}]
"""
- @spec build_tags(list(String.t())) :: list(map())
+ @spec build_tags(list(any())) :: list(map())
def build_tags(object_tags) when is_list(object_tags) do
+ object_tags = for tag when is_binary(tag) <- object_tags, do: tag
+
Enum.reduce(object_tags, [], fn tag, tags ->
tags ++ [%{name: tag, url: "/tag/#{tag}"}]
end)
diff --git a/test/web/mastodon_api/status_view_test.exs b/test/web/mastodon_api/status_view_test.exs
index 4f9805c78..b7ac92760 100644
--- a/test/web/mastodon_api/status_view_test.exs
+++ b/test/web/mastodon_api/status_view_test.exs
@@ -159,7 +159,18 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
describe "build_tags/1" do
test "it returns a a dictionary tags" do
- assert StatusView.build_tags(["fediverse", "mastodon", "nextcloud"]) == [
+ object_tags = [
+ "fediverse",
+ "mastodon",
+ "nextcloud",
+ %{
+ "href" => "https://kawen.space/users/lain",
+ "name" => "@lain@kawen.space",
+ "type" => "Mention"
+ }
+ ]
+
+ assert StatusView.build_tags(object_tags) == [
%{name: "fediverse", url: "/tag/fediverse"},
%{name: "mastodon", url: "/tag/mastodon"},
%{name: "nextcloud", url: "/tag/nextcloud"}