This repository has been archived on 2020-02-06. You can view files and clone it, but cannot push or open issues/pull-requests.
pleroma/lib/pleroma/web/twitter_api/representers/base_representer.ex

39 lines
874 B
Elixir
Raw Normal View History

# Pleroma: A lightweight social networking server
2018-12-31 10:41:47 -05:00
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
2017-03-20 16:30:18 -04:00
defmodule Pleroma.Web.TwitterAPI.Representers.BaseRepresenter do
defmacro __using__(_opts) do
quote do
2018-03-30 09:01:53 -04:00
def to_json(object) do
to_json(object, %{})
end
2017-03-20 16:30:18 -04:00
def to_json(object, options) do
object
|> to_map(options)
2018-03-30 09:01:53 -04:00
|> Jason.encode!()
2017-03-20 16:30:18 -04:00
end
def enum_to_list(enum, options) do
2018-03-30 09:01:53 -04:00
mapping = fn el -> to_map(el, options) end
2017-03-20 16:30:18 -04:00
Enum.map(enum, mapping)
end
def to_map(object) do
to_map(object, %{})
end
2018-03-30 09:01:53 -04:00
def enum_to_json(enum) do
enum_to_json(enum, %{})
end
2017-03-20 16:30:18 -04:00
def enum_to_json(enum, options) do
enum
|> enum_to_list(options)
2018-03-30 09:01:53 -04:00
|> Jason.encode!()
2017-03-20 16:30:18 -04:00
end
end
end
end