total rebase
[anni] / lib / pleroma / web / pleroma_api / views / bookmark_folder_view.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.PleromaAPI.BookmarkFolderView do
6   use Pleroma.Web, :view
7
8   alias Pleroma.BookmarkFolder
9   alias Pleroma.Emoji
10   alias Pleroma.Web.Endpoint
11
12   def render("show.json", %{folder: %BookmarkFolder{} = folder}) do
13     %{
14       id: folder.id |> to_string(),
15       name: folder.name,
16       emoji: folder.emoji,
17       emoji_url: get_emoji_url(folder.emoji)
18     }
19   end
20
21   def render("index.json", %{folders: folders} = opts) do
22     render_many(folders, __MODULE__, "show.json", Map.delete(opts, :folders))
23   end
24
25   defp get_emoji_url(nil) do
26     nil
27   end
28
29   defp get_emoji_url(emoji) do
30     if Emoji.unicode?(emoji) do
31       nil
32     else
33       emoji = Emoji.get(emoji)
34
35       if emoji != nil do
36         Endpoint.url() |> URI.merge(emoji.file) |> to_string()
37       else
38         nil
39       end
40     end
41   end
42 end