aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-03-20 21:30:18 +0100
committerRoger Braun <roger@rogerbraun.net>2017-03-20 21:30:18 +0100
commit980717fdceb39235a3f1e7f6e76d1828630f1989 (patch)
tree4b50b82c1ed5ac469e863dea6521145789403d65 /lib
parent142e8f8f3eea4915ea7d52123384c3d43454c098 (diff)
downloadpleroma-980717fdceb39235a3f1e7f6e76d1828630f1989.tar.gz
Add Twitter API user representer.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/twitter_api/representers/base_representer.ex28
-rw-r--r--lib/pleroma/web/twitter_api/representers/user_representer.ex26
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