Merge branch 'task-204-on-options-request' into 'develop'
[akkoma] / lib / pleroma / web / twitter_api / representers / object_representer.ex
1 defmodule Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter do
2 use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
3 alias Pleroma.Object
4
5 def to_map(%Object{data: %{"url" => [url | _]}} = object, _opts) do
6 data = object.data
7
8 %{
9 url: url["href"] |> Pleroma.Web.MediaProxy.url(),
10 mimetype: url["mediaType"] || url["mimeType"],
11 id: data["uuid"],
12 oembed: false,
13 description: data["name"]
14 }
15 end
16
17 def to_map(%Object{data: %{"url" => url} = data}, _opts) when is_binary(url) do
18 %{
19 url: url |> Pleroma.Web.MediaProxy.url(),
20 mimetype: data["mediaType"] || data["mimeType"],
21 id: data["uuid"],
22 oembed: false,
23 description: data["name"]
24 }
25 end
26
27 def to_map(%Object{}, _opts) do
28 %{}
29 end
30
31 # If we only get the naked data, wrap in an object
32 def to_map(%{} = data, opts) do
33 to_map(%Object{data: data}, opts)
34 end
35 end