spc-pleroma/lib/pleroma/web/twitter_api/representers/object_representer.ex

40 lines
1.0 KiB
Elixir
Raw Normal View History

# Pleroma: A lightweight social networking server
2018-12-31 15:41:47 +00:00
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
2017-03-30 14:08:49 +00:00
defmodule Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter do
use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
alias Pleroma.Object
def to_map(%Object{data: %{"url" => [url | _]}} = object, _opts) do
2017-03-30 14:08:49 +00:00
data = object.data
2018-03-30 13:01:53 +00:00
2017-03-30 14:08:49 +00:00
%{
2017-11-22 18:06:07 +00:00
url: url["href"] |> Pleroma.Web.MediaProxy.url(),
2018-07-12 17:06:28 +00:00
mimetype: url["mediaType"] || url["mimeType"],
2017-03-30 15:07:03 +00:00
id: data["uuid"],
oembed: false,
description: data["name"]
2017-03-30 14:08:49 +00:00
}
end
2017-03-30 15:07:03 +00:00
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
2017-03-30 15:07:03 +00:00
# If we only get the naked data, wrap in an object
def to_map(%{} = data, opts) do
to_map(%Object{data: data}, opts)
end
2017-03-30 14:08:49 +00:00
end