add license boilerplate to pleroma core
[akkoma] / lib / pleroma / web / twitter_api / representers / object_representer.ex
index 69eaeb36c3d9c60aeb790e5547de70ef558df155..2f33e7af4ada058c37b19a4c207999691204124f 100644 (file)
@@ -1,18 +1,37 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter do
   use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
   alias Pleroma.Object
 
-  def to_map(%Object{} = object, _opts) do
+  def to_map(%Object{data: %{"url" => [url | _]}} = object, _opts) do
     data = object.data
-    url = List.first(data["url"])
+
     %{
       url: url["href"] |> Pleroma.Web.MediaProxy.url(),
-      mimetype: url["mediaType"],
+      mimetype: url["mediaType"] || url["mimeType"],
       id: data["uuid"],
-      oembed: false
+      oembed: false,
+      description: data["name"]
     }
   end
 
+  def to_map(%Object{data: %{"url" => url} = data}, _opts) when is_binary(url) do
+    %{
+      url: url |> Pleroma.Web.MediaProxy.url(),
+      mimetype: data["mediaType"] || data["mimeType"],
+      id: data["uuid"],
+      oembed: false,
+      description: data["name"]
+    }
+  end
+
+  def to_map(%Object{}, _opts) do
+    %{}
+  end
+
   # If we only get the naked data, wrap in an object
   def to_map(%{} = data, opts) do
     to_map(%Object{data: data}, opts)