Remove TwitterAPI representers
This commit is contained in:
parent
2e7bb107e0
commit
64410497d2
|
@ -1,38 +0,0 @@
|
||||||
# Pleroma: A lightweight social networking server
|
|
||||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
defmodule Pleroma.Web.TwitterAPI.Representers.BaseRepresenter do
|
|
||||||
defmacro __using__(_opts) do
|
|
||||||
quote do
|
|
||||||
def to_json(object) do
|
|
||||||
to_json(object, %{})
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_json(object, options) do
|
|
||||||
object
|
|
||||||
|> to_map(options)
|
|
||||||
|> Jason.encode!()
|
|
||||||
end
|
|
||||||
|
|
||||||
def enum_to_list(enum, options) do
|
|
||||||
mapping = fn el -> to_map(el, options) end
|
|
||||||
Enum.map(enum, mapping)
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_map(object) do
|
|
||||||
to_map(object, %{})
|
|
||||||
end
|
|
||||||
|
|
||||||
def enum_to_json(enum) do
|
|
||||||
enum_to_json(enum, %{})
|
|
||||||
end
|
|
||||||
|
|
||||||
def enum_to_json(enum, options) do
|
|
||||||
enum
|
|
||||||
|> enum_to_list(options)
|
|
||||||
|> Jason.encode!()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,39 +0,0 @@
|
||||||
# Pleroma: A lightweight social networking server
|
|
||||||
# Copyright © 2017-2019 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{data: %{"url" => [url | _]}} = object, _opts) do
|
|
||||||
data = object.data
|
|
||||||
|
|
||||||
%{
|
|
||||||
url: url["href"] |> Pleroma.Web.MediaProxy.url(),
|
|
||||||
mimetype: url["mediaType"] || url["mimeType"],
|
|
||||||
id: data["uuid"],
|
|
||||||
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)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,60 +0,0 @@
|
||||||
# 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.ObjectReprenterTest do
|
|
||||||
use Pleroma.DataCase
|
|
||||||
|
|
||||||
alias Pleroma.Object
|
|
||||||
alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter
|
|
||||||
|
|
||||||
test "represent an image attachment" do
|
|
||||||
object = %Object{
|
|
||||||
id: 5,
|
|
||||||
data: %{
|
|
||||||
"type" => "Image",
|
|
||||||
"url" => [
|
|
||||||
%{
|
|
||||||
"mediaType" => "sometype",
|
|
||||||
"href" => "someurl"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"uuid" => 6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
expected_object = %{
|
|
||||||
id: 6,
|
|
||||||
url: "someurl",
|
|
||||||
mimetype: "sometype",
|
|
||||||
oembed: false,
|
|
||||||
description: nil
|
|
||||||
}
|
|
||||||
|
|
||||||
assert expected_object == ObjectRepresenter.to_map(object)
|
|
||||||
end
|
|
||||||
|
|
||||||
test "represents mastodon-style attachments" do
|
|
||||||
object = %Object{
|
|
||||||
id: nil,
|
|
||||||
data: %{
|
|
||||||
"mediaType" => "image/png",
|
|
||||||
"name" => "blabla",
|
|
||||||
"type" => "Document",
|
|
||||||
"url" =>
|
|
||||||
"http://mastodon.example.org/system/media_attachments/files/000/000/001/original/8619f31c6edec470.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
expected_object = %{
|
|
||||||
url:
|
|
||||||
"http://mastodon.example.org/system/media_attachments/files/000/000/001/original/8619f31c6edec470.png",
|
|
||||||
mimetype: "image/png",
|
|
||||||
oembed: false,
|
|
||||||
id: nil,
|
|
||||||
description: "blabla"
|
|
||||||
}
|
|
||||||
|
|
||||||
assert expected_object == ObjectRepresenter.to_map(object)
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue