diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-03-20 21:30:18 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-03-20 21:30:18 +0100 |
commit | 980717fdceb39235a3f1e7f6e76d1828630f1989 (patch) | |
tree | 4b50b82c1ed5ac469e863dea6521145789403d65 /lib | |
parent | 142e8f8f3eea4915ea7d52123384c3d43454c098 (diff) | |
download | pleroma-980717fdceb39235a3f1e7f6e76d1828630f1989.tar.gz |
Add Twitter API user representer.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/twitter_api/representers/base_representer.ex | 28 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/representers/user_representer.ex | 26 |
2 files changed, 54 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/representers/base_representer.ex b/lib/pleroma/web/twitter_api/representers/base_representer.ex new file mode 100644 index 000000000..a4ef245fc --- /dev/null +++ b/lib/pleroma/web/twitter_api/representers/base_representer.ex @@ -0,0 +1,28 @@ +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) + |> Poison.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) + |> Poison.encode! + end + end + end +end diff --git a/lib/pleroma/web/twitter_api/representers/user_representer.ex b/lib/pleroma/web/twitter_api/representers/user_representer.ex new file mode 100644 index 000000000..079e25021 --- /dev/null +++ b/lib/pleroma/web/twitter_api/representers/user_representer.ex @@ -0,0 +1,26 @@ +defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenter do + use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter + + def to_map(user, options) do + image = "https://placehold.it/48x48" + map = %{ + "id" => user.id, + "name" => user.name, + "screen_name" => user.nickname, + "description" => user.bio, + "following" => false, + # Fake fields + "favourites_count" => 0, + "statuses_count" => 0, + "friends_count" => 0, + "followers_count" => 0, + "profile_image_url" => image, + "profile_image_url_https" => image, + "profile_image_url_profile_size" => image, + "profile_image_url_original" => image, + "rights" => %{} + } + + map + end +end |