Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into feature/unfollow...
[akkoma] / lib / pleroma / web / twitter_api / representers / base_representer.ex
1 defmodule Pleroma.Web.TwitterAPI.Representers.BaseRepresenter do
2 defmacro __using__(_opts) do
3 quote do
4 def to_json(object) do to_json(object, %{}) end
5 def to_json(object, options) do
6 object
7 |> to_map(options)
8 |> Poison.encode!
9 end
10
11 def enum_to_list(enum, options) do
12 mapping = fn (el) -> to_map(el, options) end
13 Enum.map(enum, mapping)
14 end
15
16 def to_map(object) do
17 to_map(object, %{})
18 end
19
20 def enum_to_json(enum) do enum_to_json(enum, %{}) end
21 def enum_to_json(enum, options) do
22 enum
23 |> enum_to_list(options)
24 |> Poison.encode!
25 end
26 end
27 end
28 end