Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into feature/user-timeline
[akkoma] / lib / pleroma / web / twitter_api / twitter_api_controller.ex
index b0287a7f489f8439b71e26d55639e9b5225e5d8b..36e2d235be4461f139fe3dfa1bbe78d914b85e9b 100644 (file)
@@ -45,6 +45,18 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
     |> json_reply(200, json)
   end
 
+  def user_timeline(%{assigns: %{user: user}} = conn, params) do
+    case TwitterAPI.get_user(user, params) do
+      {:ok, target_user} ->
+        params = Map.merge(params, %{"actor_id" => target_user.ap_id})
+        statuses  = TwitterAPI.fetch_user_statuses(user, params)
+        conn
+        |> json_reply(200, statuses |> Poison.encode!)
+      {:error, msg} ->
+        bad_request_reply(conn, msg)
+    end
+  end
+
   def follow(%{assigns: %{user: user}} = conn, %{ "user_id" => followed_id }) do
     { :ok, user, follower, _activity } = TwitterAPI.follow(user, followed_id)
 
@@ -155,6 +167,11 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
     |> json_reply(200, response)
   end
 
+  defp bad_request_reply(conn, error_message) do
+    json = Poison.encode!(%{"error" => error_message})
+    json_reply(conn, 400, json)
+  end
+
   defp json_reply(conn, status, json) do
     conn
     |> put_resp_content_type("application/json")