Merge branch 'develop' into refactor/user-view
authorRoger Braun <roger@rogerbraun.net>
Tue, 20 Jun 2017 09:49:41 +0000 (11:49 +0200)
committerRoger Braun <roger@rogerbraun.net>
Tue, 20 Jun 2017 09:49:41 +0000 (11:49 +0200)
lib/pleroma/web/twitter_api/representers/activity_representer.ex
lib/pleroma/web/twitter_api/representers/base_representer.ex
lib/pleroma/web/twitter_api/twitter_api.ex
lib/pleroma/web/twitter_api/twitter_api_controller.ex
lib/pleroma/web/twitter_api/utils.ex
lib/pleroma/web/twitter_api/views/user_view.ex [moved from lib/pleroma/web/twitter_api/representers/user_representer.ex with 54% similarity]
test/web/twitter_api/representers/activity_representer_test.exs
test/web/twitter_api/twitter_api_controller_test.exs
test/web/twitter_api/twitter_api_test.exs
test/web/twitter_api/views/user_view_test.exs [moved from test/web/twitter_api/representers/user_representer_test.exs with 77% similarity]

index 8630f4f79c3f1e2271624cce21268730c33fe6bd..9be7338c71178a52d79234bf2707f3294555e10c 100644 (file)
@@ -1,9 +1,8 @@
 defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
   use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
-  alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ObjectRepresenter}
+  alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter
   alias Pleroma.{Activity, User}
-  alias Calendar.Strftime
-  alias Pleroma.Web.TwitterAPI.TwitterAPI
+  alias Pleroma.Web.TwitterAPI.{TwitterAPI, UserView, Utils}
   alias Pleroma.Formatter
 
   defp user_by_ap_id(user_list, ap_id) do
@@ -13,7 +12,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
   def to_map(%Activity{data: %{"type" => "Announce", "actor" => actor, "published" => created_at}} = activity,
              %{users: users, announced_activity: announced_activity} = opts) do
     user = user_by_ap_id(users, actor)
-    created_at = created_at |> date_to_asctime
+    created_at = created_at |> Utils.date_to_asctime
 
     text = "#{user.nickname} retweeted a status."
 
@@ -21,7 +20,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
     retweeted_status = to_map(announced_activity, Map.merge(%{user: announced_user}, opts))
     %{
       "id" => activity.id,
-      "user" => UserRepresenter.to_map(user, opts),
+      "user" => UserView.render("show.json", %{user: user, for: opts[:for]}),
       "statusnet_html" => text,
       "text" => text,
       "is_local" => true,
@@ -36,13 +35,13 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
 
   def to_map(%Activity{data: %{"type" => "Like", "published" => created_at}} = activity,
              %{user: user, liked_activity: liked_activity} = opts) do
-    created_at = created_at |> date_to_asctime
+    created_at = created_at |> Utils.date_to_asctime
 
     text = "#{user.nickname} favorited a status."
 
     %{
       "id" => activity.id,
-      "user" => UserRepresenter.to_map(user, opts),
+      "user" => UserView.render("show.json", %{user: user, for: opts[:for]}),
       "statusnet_html" => text,
       "text" => text,
       "is_local" => true,
@@ -55,13 +54,13 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
   end
 
   def to_map(%Activity{data: %{"type" => "Follow", "published" => created_at, "object" => followed_id}} = activity, %{user: user} = opts) do
-    created_at = created_at |> date_to_asctime
+    created_at = created_at |> Utils.date_to_asctime
 
     followed = User.get_cached_by_ap_id(followed_id)
     text = "#{user.nickname} started following #{followed.nickname}"
     %{
       "id" => activity.id,
-      "user" => UserRepresenter.to_map(user, opts),
+      "user" => UserView.render("show.json", %{user: user, for: opts[:for]}),
       "attentions" => [],
       "statusnet_html" => text,
       "text" => text,
@@ -74,7 +73,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
   end
 
   def to_map(%Activity{data: %{"object" => %{"content" => content} = object}} = activity, %{user: user} = opts) do
-    created_at = object["published"] |> date_to_asctime
+    created_at = object["published"] |> Utils.date_to_asctime
     like_count = object["like_count"] || 0
     announcement_count = object["announcement_count"] || 0
     favorited = opts[:for] && opts[:for].ap_id in (object["likes"] || [])
@@ -85,14 +84,13 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
     attentions = activity.data["to"]
     |> Enum.map(fn (ap_id) -> Enum.find(mentions, fn(user) -> ap_id == user.ap_id end) end)
     |> Enum.filter(&(&1))
-    |> Enum.map(fn (user) -> UserRepresenter.to_map(user, opts) end)
+    |> Enum.map(fn (user) -> UserView.render("show.json", %{user: user, for: opts[:for]}) end)
 
     conversation_id = conversation_id(activity)
 
     %{
       "id" => activity.id,
-      "user" => UserRepresenter.to_map(user, opts),
-      "attentions" => [],
+      "user" => UserView.render("show.json", %{user: user, for: opts[:for]}),
       "statusnet_html" => HtmlSanitizeEx.basic_html(content) |> Formatter.finmojifiy,
       "text" => HtmlSanitizeEx.strip_tags(content),
       "is_local" => true,
index f13a544129df7a6226261d5dd845fc10173e420c..a4ef245fc687195356239c4a0961d0175e978a19 100644 (file)
@@ -1,7 +1,6 @@
 defmodule Pleroma.Web.TwitterAPI.Representers.BaseRepresenter do
   defmacro __using__(_opts) do
     quote do
-      alias Calendar.Strftime
       def to_json(object) do to_json(object, %{}) end
       def to_json(object, options) do
         object
@@ -24,18 +23,6 @@ defmodule Pleroma.Web.TwitterAPI.Representers.BaseRepresenter do
         |> enum_to_list(options)
         |> Poison.encode!
       end
-
-      def format_asctime(date) do
-        Strftime.strftime!(date, "%a %b %d %H:%M:%S %z %Y")
-      end
-
-      def date_to_asctime(date) do
-        with {:ok, date, _offset} <- date |> DateTime.from_iso8601 do
-            format_asctime(date)
-        else _e ->
-            ""
-        end
-      end
     end
   end
 end
index 5881af95e61782c6eb78c0bfe8106b84eff9f293..b5b59eb4bea4415cf4797a2e66a4977875aa2b80 100644 (file)
@@ -1,12 +1,11 @@
 defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
   alias Pleroma.{User, Activity, Repo, Object}
   alias Pleroma.Web.ActivityPub.ActivityPub
-  alias Pleroma.Web.ActivityPub.Utils
-  alias Pleroma.Web.TwitterAPI.Representers.{ActivityRepresenter, UserRepresenter}
+  alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
+  alias Pleroma.Web.TwitterAPI.UserView
   alias Pleroma.Web.OStatus
   alias Pleroma.Formatter
 
-  import Ecto.Query
   import Pleroma.Web.TwitterAPI.Utils
 
   @httpoison Application.get_env(:pleroma, :httpoison)
@@ -197,7 +196,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
     changeset = User.register_changeset(%User{}, params)
 
     with {:ok, user} <- Repo.insert(changeset) do
-      {:ok, UserRepresenter.to_map(user)}
+      {:ok, user}
     else
       {:error, changeset} ->
         errors = Ecto.Changeset.traverse_errors(changeset, fn {msg, _opts} -> msg end)
@@ -308,7 +307,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
            {:ok, %{body: body}} <- @httpoison.get(url, [], follow_redirect: true, timeout: 10000, recv_timeout: 20000) do
         OStatus.handle_incoming(body)
       end
-      {:ok, UserRepresenter.to_map(user, %{for: for_user})}
+      {:ok, UserView.render("show.json", %{user: user, for: for_user})}
     else _e ->
         {:error, "Couldn't find user"}
     end
index 4a1622cc80b540601520f1b32350941e492f6d36..c3ab5ae8c10b46fbb0ce156bb871e239fe3c5f7a 100644 (file)
@@ -1,16 +1,13 @@
 defmodule Pleroma.Web.TwitterAPI.Controller do
   use Pleroma.Web, :controller
-  alias Pleroma.Web.TwitterAPI.TwitterAPI
-  alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter}
+  alias Pleroma.Web.TwitterAPI.{TwitterAPI, UserView}
+  alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
   alias Pleroma.{Web, Repo, Activity}
   alias Pleroma.Web.ActivityPub.ActivityPub
   alias Ecto.Changeset
 
   def verify_credentials(%{assigns: %{user: user}} = conn, _params) do
-    response = user |> UserRepresenter.to_json(%{for: user})
-
-    conn
-    |> json_reply(200, response)
+    render(conn, UserView, "show.json", %{user: user})
   end
 
   def status_update(%{assigns: %{user: user}} = conn, %{"status" => status_text} = status_data) do
@@ -90,9 +87,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
   def follow(%{assigns: %{user: user}} = conn, params) do
     case TwitterAPI.follow(user, params) do
       {:ok, user, followed, _activity} ->
-        response = followed |> UserRepresenter.to_json(%{for: user})
-        conn
-        |> json_reply(200, response)
+        render(conn, UserView, "show.json", %{user: followed, for: user})
       {:error, msg} -> forbidden_json_reply(conn, msg)
     end
   end
@@ -100,9 +95,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
   def unfollow(%{assigns: %{user: user}} = conn, params) do
     case TwitterAPI.unfollow(user, params) do
       {:ok, user, unfollowed} ->
-        response = unfollowed |> UserRepresenter.to_json(%{for: user})
-        conn
-        |> json_reply(200, response)
+        render(conn, UserView, "show.json", %{user: unfollowed, for: user})
       {:error, msg} -> forbidden_json_reply(conn, msg)
     end
   end
@@ -187,8 +180,8 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
 
   def register(conn, params) do
     with {:ok, user} <- TwitterAPI.register_user(params) do
-      conn
-      |> json_reply(200, Poison.encode!(user))
+
+      render(conn, UserView, "show.json", %{user: user})
     else
       {:error, errors} ->
       conn
@@ -201,10 +194,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
     change = Changeset.change(user, %{avatar: object.data})
     {:ok, user} = Repo.update(change)
 
-    response = Poison.encode!(UserRepresenter.to_map(user, %{for: user}))
-
-    conn
-    |> json_reply(200, response)
+    render(conn, UserView, "show.json", %{user: user, for: user})
   end
 
   def external_profile(%{assigns: %{user: current_user}} = conn, %{"profileurl" => uri}) do
index 5cbe0cf9c96acb297a119b12bf9d95f2e25595be..2c3507dfbd6936158b29650c9edf25164fa81e3b 100644 (file)
@@ -1,6 +1,7 @@
 defmodule Pleroma.Web.TwitterAPI.Utils do
   alias Pleroma.{Repo, Object, Formatter, User, Activity}
   alias Pleroma.Web.ActivityPub.Utils
+  alias Calendar.Strftime
 
   def attachments_from_ids(ids) do
     Enum.map(ids || [], fn (media_id) ->
@@ -72,4 +73,20 @@ defmodule Pleroma.Web.TwitterAPI.Utils do
       object
     end
   end
+
+  def format_naive_asctime(date) do
+    date |> DateTime.from_naive!("Etc/UTC") |> format_asctime
+  end
+
+  def format_asctime(date) do
+    Strftime.strftime!(date, "%a %b %d %H:%M:%S %z %Y")
+  end
+
+  def date_to_asctime(date) do
+    with {:ok, date, _offset} <- date |> DateTime.from_iso8601 do
+      format_asctime(date)
+    else _e ->
+        ""
+    end
+  end
 end
similarity index 54%
rename from lib/pleroma/web/twitter_api/representers/user_representer.ex
rename to lib/pleroma/web/twitter_api/views/user_view.ex
index a6595f349029d6c78eb1562acd878506c065cc44..fdab5be3110f9391af7a118f5b8500f936d2e6bc 100644 (file)
@@ -1,39 +1,47 @@
-defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenter do
-  use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
-
+defmodule Pleroma.Web.TwitterAPI.UserView do
+  use Pleroma.Web, :view
   alias Pleroma.User
+  alias Pleroma.Web.TwitterAPI.Utils
 
-  def to_map(user, opts) do
+  def render("show.json", %{user: user = %User{}} = assigns) do
     image = User.avatar_url(user)
-    following = if opts[:for] do
-      User.following?(opts[:for], user)
+    following = if assigns[:for] do
+      User.following?(assigns[:for], user)
     else
       false
     end
 
     user_info = User.get_cached_user_info(user)
-    created_at = user.inserted_at |> DateTime.from_naive!("Etc/UTC") |> format_asctime
 
-    map = %{
-      "id" => user.id,
-      "name" => user.name,
-      "screen_name" => user.nickname,
+    %{
+      "created_at" => user.inserted_at |> Utils.format_naive_asctime,
       "description" => HtmlSanitizeEx.strip_tags(user.bio),
-      "following" => following,
-      "created_at" => created_at,
-      # Fake fields
       "favourites_count" => 0,
-      "statuses_count" => user_info[:note_count],
-      "friends_count" => user_info[:following_count],
       "followers_count" => user_info[:follower_count],
+      "following" => following,
+      "friends_count" => user_info[:following_count],
+      "id" => user.id,
+      "name" => user.name,
       "profile_image_url" => image,
       "profile_image_url_https" => image,
       "profile_image_url_profile_size" => image,
       "profile_image_url_original" => image,
       "rights" => %{},
+      "screen_name" => user.nickname,
+      "statuses_count" => user_info[:note_count],
       "statusnet_profile_url" => user.ap_id
     }
+  end
 
-    map
+  def render("short.json", %{user: %User{
+                               nickname: nickname, id: id, ap_id: ap_id, name: name
+                           }}) do
+    %{
+      "fullname" => name,
+      "id" => id,
+      "ostatus_uri" => ap_id,
+      "profile_url" => ap_id,
+      "screen_name" => nickname
+    }
   end
 end
index 96178c2ccff95c082e91ecebfe21c8fbbf02e8b6..781ef8536ff76bf60e1eb1fdc01bd80617d78f77 100644 (file)
@@ -1,9 +1,10 @@
 defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
   use Pleroma.DataCase
   alias Pleroma.{User, Activity, Object}
-  alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter, ObjectRepresenter}
+  alias Pleroma.Web.TwitterAPI.Representers.{ActivityRepresenter, ObjectRepresenter}
   alias Pleroma.Web.ActivityPub.ActivityPub
   alias Pleroma.Builders.UserBuilder
+  alias Pleroma.Web.TwitterAPI.UserView
   import Pleroma.Factory
 
   test "an announce activity" do
@@ -18,7 +19,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
     status = ActivityRepresenter.to_map(announce_activity, %{users: [user, activity_actor], announced_activity: note_activity, for: user})
 
     assert status["id"] == announce_activity.id
-    assert status["user"] == UserRepresenter.to_map(user, %{for: user})
+    assert status["user"] == UserView.render("show.json", %{user: user, for: user})
 
     retweeted_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user})
     assert retweeted_status["repeated"] == true
@@ -105,9 +106,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
 
     expected_status = %{
       "id" => activity.id,
-      "user" => UserRepresenter.to_map(user, %{for: follower}),
+      "user" => UserView.render("show.json", %{user: user, for: follower}),
       "is_local" => true,
-      "attentions" => [],
       "statusnet_html" => HtmlSanitizeEx.basic_html(content_html),
       "text" => content,
       "is_post_verb" => true,
@@ -118,7 +118,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
         ObjectRepresenter.to_map(object)
       ],
       "attentions" => [
-        UserRepresenter.to_map(mentioned_user, %{for: follower})
+        UserView.render("show.json", %{user: mentioned_user, for: follower})
       ],
       "fave_num" => 5,
       "repeat_num" => 3,
index 0e9d29018cabd9c1aa34fc498e1938d69f5eecdd..5ccced73941a40314e2ed3532fddc002fa3ad7f7 100644 (file)
@@ -1,9 +1,10 @@
 defmodule Pleroma.Web.TwitterAPI.ControllerTest do
   use Pleroma.Web.ConnCase
-  alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter}
+  alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
   alias Pleroma.Builders.{ActivityBuilder, UserBuilder}
   alias Pleroma.{Repo, Activity, User, Object}
   alias Pleroma.Web.ActivityPub.ActivityPub
+  alias Pleroma.Web.TwitterAPI.UserView
 
   import Pleroma.Factory
 
@@ -19,7 +20,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
         |> with_credentials(user.nickname, "test")
         |> post("/api/account/verify_credentials.json")
 
-      assert json_response(conn, 200) == UserRepresenter.to_map(user)
+      assert json_response(conn, 200) == UserView.render("show.json", %{user: user})
     end
   end
 
@@ -229,7 +230,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
 
       current_user = Repo.get(User, current_user.id)
       assert current_user.following == [User.ap_followers(followed)]
-      assert json_response(conn, 200) == UserRepresenter.to_map(followed, %{for: current_user})
+      assert json_response(conn, 200) == UserView.render("show.json", %{user: followed, for: current_user})
     end
   end
 
@@ -253,7 +254,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
 
       current_user = Repo.get(User, current_user.id)
       assert current_user.following == []
-      assert json_response(conn, 200) == UserRepresenter.to_map(followed, %{for: current_user})
+      assert json_response(conn, 200) == UserView.render("show.json", %{user: followed, for: current_user})
     end
   end
 
@@ -278,7 +279,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
 
       current_user = Repo.get(User, current_user.id)
       assert is_map(current_user.avatar)
-      assert json_response(conn, 200) == UserRepresenter.to_map(current_user, %{for: current_user})
+      assert json_response(conn, 200) == UserView.render("show.json", %{user: current_user, for: current_user})
     end
   end
 
@@ -368,7 +369,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
       user = json_response(conn, 200)
 
       fetched_user = Repo.get_by(User, nickname: "lain")
-      assert user == UserRepresenter.to_map(fetched_user)
+      assert user == UserView.render("show.json", %{user: fetched_user})
     end
 
     test "it returns errors on a problem", %{conn: conn} do
@@ -396,7 +397,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
       conn = conn
       |> get("/api/externalprofile/show", %{profileurl: user.ap_id})
 
-      assert json_response(conn, 200) == UserRepresenter.to_map(user)
+      assert json_response(conn, 200) == UserView.render("show.json", %{user: user})
     end
   end
 
index adea67422c08a608c0eb6f0d5bf4a8288b83b9bb..4708fe093ff8e4700666aaee473ea57bf31b8551 100644 (file)
@@ -1,10 +1,9 @@
 defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
   use Pleroma.DataCase
   alias Pleroma.Builders.{UserBuilder, ActivityBuilder}
-  alias Pleroma.Web.TwitterAPI.TwitterAPI
-  alias Pleroma.Web.TwitterAPI.Utils
+  alias Pleroma.Web.TwitterAPI.{TwitterAPI,UserView,Utils}
   alias Pleroma.{Activity, User, Object, Repo}
-  alias Pleroma.Web.TwitterAPI.Representers.{ActivityRepresenter, UserRepresenter}
+  alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
   alias Pleroma.Web.ActivityPub.ActivityPub
 
   import Pleroma.Factory
@@ -303,7 +302,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     {:ok, user} = TwitterAPI.register_user(data)
 
     fetched_user = Repo.get_by(User, nickname: "lain")
-    assert user == UserRepresenter.to_map(fetched_user)
+    assert UserView.render("show.json", %{user: user}) == UserView.render("show.json", %{user: fetched_user})
   end
 
   test "it returns the error on registration problems" do
@@ -358,7 +357,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
       {:ok, represented} = TwitterAPI.get_external_profile(user, id)
       remote = User.get_by_ap_id(id)
 
-      assert represented == UserRepresenter.to_map(remote, %{for: user})
+      assert represented == UserView.render("show.json", %{user: remote, for: user})
 
       # Also fetches the feed.
       assert Activity.get_create_activity_by_object_ap_id("tag:mastodon.social,2017-04-05:objectId=1641750:objectType=Status")
similarity index 77%
rename from test/web/twitter_api/representers/user_representer_test.exs
rename to test/web/twitter_api/views/user_view_test.exs
index f62ce1da3fba46039b47d63fd0aa8891f88fe232..de2cd3d3019961e1d3900d07bd150262724a2c71 100644 (file)
@@ -1,8 +1,8 @@
-defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
+defmodule Pleroma.Web.TwitterAPI.UserViewTest do
   use Pleroma.DataCase
 
   alias Pleroma.User
-  alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter
+  alias Pleroma.Web.TwitterAPI.{UserView, Utils}
   alias Pleroma.Builders.UserBuilder
 
   import Pleroma.Factory
@@ -15,7 +15,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
   test "A user with an avatar object", %{user: user} do
     image = "image"
     user = %{ user | avatar: %{ "url" => [%{"href" => image}] }}
-    represented = UserRepresenter.to_map(user)
+    represented = UserView.render("show.json", %{user: user})
     assert represented["profile_image_url"] == image
   end
 
@@ -33,15 +33,12 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
 
     image = "https://placehold.it/48x48"
 
-    created_at = user.inserted_at |> DateTime.from_naive!("Etc/UTC") |> UserRepresenter.format_asctime
-
     represented = %{
       "id" => user.id,
       "name" => user.name,
       "screen_name" => user.nickname,
       "description" => HtmlSanitizeEx.strip_tags(user.bio),
-      "created_at" => created_at,
-      # Fake fields
+      "created_at" => user.inserted_at |> Utils.format_naive_asctime,
       "favourites_count" => 0,
       "statuses_count" => 1,
       "friends_count" => 1,
@@ -55,20 +52,18 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
       "statusnet_profile_url" => user.ap_id
     }
 
-    assert represented == UserRepresenter.to_map(user)
+    assert represented == UserView.render("show.json", %{user: user})
   end
 
   test "A user for a given other follower", %{user: user} do
     {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]})
     image = "https://placehold.it/48x48"
-    created_at = user.inserted_at |> DateTime.from_naive!("Etc/UTC") |> UserRepresenter.format_asctime
     represented = %{
       "id" => user.id,
       "name" => user.name,
       "screen_name" => user.nickname,
       "description" => HtmlSanitizeEx.strip_tags(user.bio),
-      "created_at" => created_at,
-      # Fake fields
+      "created_at" => user.inserted_at |> Utils.format_naive_asctime,
       "favourites_count" => 0,
       "statuses_count" => 0,
       "friends_count" => 0,
@@ -82,6 +77,6 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
       "statusnet_profile_url" => user.ap_id
     }
 
-    assert represented == UserRepresenter.to_map(user, %{for: follower})
+    assert represented == UserView.render("show.json", %{user: user, for: follower})
   end
 end