forked from AkkomaGang/akkoma
TwitterAPI: Add /users/show.
This commit is contained in:
parent
0a69611884
commit
f9828e578c
3 changed files with 54 additions and 0 deletions
|
@ -140,6 +140,7 @@ def user_fetcher(username) do
|
|||
get "/statuses/networkpublic_timeline", TwitterAPI.Controller, :public_and_external_timeline
|
||||
get "/statuses/user_timeline", TwitterAPI.Controller, :user_timeline
|
||||
get "/qvitter/statuses/user_timeline", TwitterAPI.Controller, :user_timeline
|
||||
get "/users/show", TwitterAPI.Controller, :show_user
|
||||
|
||||
get "/statuses/show/:id", TwitterAPI.Controller, :fetch_status
|
||||
get "/statusnet/conversation/:id", TwitterAPI.Controller, :fetch_conversation
|
||||
|
|
|
@ -65,6 +65,19 @@ def friends_timeline(%{assigns: %{user: user}} = conn, params) do
|
|||
|> json_reply(200, json)
|
||||
end
|
||||
|
||||
def show_user(conn, params) do
|
||||
with {:ok, shown} <- TwitterAPI.get_user(params) do
|
||||
if user = conn.assigns.user do
|
||||
render conn, UserView, "show.json", %{user: shown, for: user}
|
||||
else
|
||||
render conn, UserView, "show.json", %{user: shown}
|
||||
end
|
||||
else
|
||||
{:error, msg} ->
|
||||
bad_request_reply(conn, msg)
|
||||
end
|
||||
end
|
||||
|
||||
def user_timeline(%{assigns: %{user: user}} = conn, params) do
|
||||
case TwitterAPI.get_user(user, params) do
|
||||
{:ok, target_user} ->
|
||||
|
|
|
@ -6,6 +6,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||
alias Pleroma.Web.TwitterAPI.UserView
|
||||
alias Pleroma.Web.CommonAPI
|
||||
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
||||
|
||||
import Pleroma.Factory
|
||||
|
||||
|
@ -101,6 +102,45 @@ test "returns one status", %{conn: conn} do
|
|||
end
|
||||
end
|
||||
|
||||
describe "GET /users/show.json" do
|
||||
test "gets user with screen_name", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
conn = conn
|
||||
|> get("/api/users/show.json", %{"screen_name" => user.nickname})
|
||||
|
||||
response = json_response(conn, 200)
|
||||
|
||||
assert response["id"] == user.id
|
||||
end
|
||||
|
||||
test "gets user with user_id", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
conn = conn
|
||||
|> get("/api/users/show.json", %{"user_id" => user.id})
|
||||
|
||||
response = json_response(conn, 200)
|
||||
|
||||
assert response["id"] == user.id
|
||||
end
|
||||
|
||||
test "gets a user for a logged in user", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
logged_in = insert(:user)
|
||||
|
||||
{:ok, logged_in, user, _activity} = TwitterAPI.follow(logged_in, %{"user_id" => user.id})
|
||||
|
||||
conn = conn
|
||||
|> with_credentials(logged_in.nickname, "test")
|
||||
|> get("/api/users/show.json", %{"user_id" => user.id})
|
||||
|
||||
response = json_response(conn, 200)
|
||||
|
||||
assert response["following"] == true
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /statusnet/conversation/:id.json" do
|
||||
test "returns the statuses in the conversation", %{conn: conn} do
|
||||
{:ok, _user} = UserBuilder.insert
|
||||
|
|
Loading…
Reference in a new issue