add license boilerplate to pleroma core
[akkoma] / lib / pleroma / web / twitter_api / representers / object_representer.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter do
6 use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
7 alias Pleroma.Object
8
9 def to_map(%Object{data: %{"url" => [url | _]}} = object, _opts) do
10 data = object.data
11
12 %{
13 url: url["href"] |> Pleroma.Web.MediaProxy.url(),
14 mimetype: url["mediaType"] || url["mimeType"],
15 id: data["uuid"],
16 oembed: false,
17 description: data["name"]
18 }
19 end
20
21 def to_map(%Object{data: %{"url" => url} = data}, _opts) when is_binary(url) do
22 %{
23 url: url |> Pleroma.Web.MediaProxy.url(),
24 mimetype: data["mediaType"] || data["mimeType"],
25 id: data["uuid"],
26 oembed: false,
27 description: data["name"]
28 }
29 end
30
31 def to_map(%Object{}, _opts) do
32 %{}
33 end
34
35 # If we only get the naked data, wrap in an object
36 def to_map(%{} = data, opts) do
37 to_map(%Object{data: data}, opts)
38 end
39 end