More refactoring.
[akkoma] / lib / pleroma / web / twitter_api / twitter_api_controller.ex
index 32d352d797641d8e727244004cad0741152b41cf..8ea54852dd6f90eb2bb380f9835c4bde1413870c 100644 (file)
@@ -45,6 +45,26 @@ 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 mentions_timeline(%{assigns: %{user: user}} = conn, params) do
+    statuses = TwitterAPI.fetch_mentions(user, params)
+    {:ok, json} = Poison.encode(statuses)
+
+    conn
+    |> json_reply(200, json)
+  end
+
   def follow(%{assigns: %{user: user}} = conn, %{ "user_id" => followed_id }) do
     case TwitterAPI.follow(user, followed_id) do
       { :ok, user, followed, _activity } ->
@@ -162,6 +182,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")