logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma

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