Basic peertube support.
[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 }
14 end
15
16 def to_map(%Object{data: %{"url" => url} = data}, _opts) when is_binary(url) do
17 %{
18 url: url |> Pleroma.Web.MediaProxy.url(),
19 mimetype: data["mediaType"] || url["mimeType"],
20 id: data["uuid"],
21 oembed: false
22 }
23 end
24
25 def to_map(%Object{}, _opts) do
26 %{}
27 end
28
29 # If we only get the naked data, wrap in an object
30 def to_map(%{} = data, opts) do
31 to_map(%Object{data: data}, opts)
32 end
33 end