object_representer.ex (1074B)
1 # Pleroma: A lightweight social networking server 2 # Copyright © 2017-2019 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