Skip to content
Snippets Groups Projects
Commit d3ec09bb authored by Maksim's avatar Maksim
Browse files

fix tags

parent 91236c60
No related branches found
No related tags found
No related merge requests found
......@@ -140,7 +140,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
visibility: get_visibility(object),
media_attachments: attachments |> Enum.take(4),
mentions: mentions,
tags: tags,
tags: build_tags(tags),
application: %{
name: "Web",
website: nil
......@@ -234,6 +234,25 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
def render_content(object), do: object["content"] || ""
@doc """
Builds a dictionary tags.
## Examples
iex> Pleroma.Web.MastodonAPI.StatusView.build_tags(["fediverse", "nextcloud"])
[{"name": "fediverse", "url": "/tag/fediverse"},
{"name": "nextcloud", "url": "/tag/nextcloud"}]
"""
@spec build_tags(list(String.t())) :: list(map())
def build_tags(object_tags) when is_list(object_tags) do
Enum.reduce(object_tags, [], fn tag, tags ->
tags ++ [%{name: tag, url: "/tag/#{tag}"}]
end)
end
def build_tags(_), do: []
@doc """
Builds list emojis.
......
......@@ -62,7 +62,12 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
visibility: "public",
media_attachments: [],
mentions: [],
tags: note.data["object"]["tag"],
tags: [
%{
name: "#{note.data["object"]["tag"]}",
url: "/tag/#{note.data["object"]["tag"]}"
}
],
application: %{
name: "Web",
website: nil
......@@ -151,4 +156,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
assert represented[:reblog][:id] == to_string(activity.id)
assert represented[:emojis] == []
end
describe "build_tags/1" do
test "it returns a a dictionary tags" do
assert StatusView.build_tags(["fediverse", "mastodon", "nextcloud"]) == [
%{name: "fediverse", url: "/tag/fediverse"},
%{name: "mastodon", url: "/tag/mastodon"},
%{name: "nextcloud", url: "/tag/nextcloud"}
]
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment