forked from AkkomaGang/akkoma
Merge branch 'twitterapi-show-user' into 'develop'
TwitterAPI: Add /users/show. See merge request pleroma/pleroma!19
This commit is contained in:
commit
1eb7a862d2
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/networkpublic_timeline", TwitterAPI.Controller, :public_and_external_timeline
|
||||||
get "/statuses/user_timeline", TwitterAPI.Controller, :user_timeline
|
get "/statuses/user_timeline", TwitterAPI.Controller, :user_timeline
|
||||||
get "/qvitter/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 "/statuses/show/:id", TwitterAPI.Controller, :fetch_status
|
||||||
get "/statusnet/conversation/:id", TwitterAPI.Controller, :fetch_conversation
|
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)
|
|> json_reply(200, json)
|
||||||
end
|
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
|
def user_timeline(%{assigns: %{user: user}} = conn, params) do
|
||||||
case TwitterAPI.get_user(user, params) do
|
case TwitterAPI.get_user(user, params) do
|
||||||
{:ok, target_user} ->
|
{:ok, target_user} ->
|
||||||
|
|
|
@ -6,6 +6,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||||
alias Pleroma.Web.TwitterAPI.UserView
|
alias Pleroma.Web.TwitterAPI.UserView
|
||||||
alias Pleroma.Web.CommonAPI
|
alias Pleroma.Web.CommonAPI
|
||||||
|
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
||||||
|
|
||||||
import Pleroma.Factory
|
import Pleroma.Factory
|
||||||
|
|
||||||
|
@ -101,6 +102,45 @@ test "returns one status", %{conn: conn} do
|
||||||
end
|
end
|
||||||
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
|
describe "GET /statusnet/conversation/:id.json" do
|
||||||
test "returns the statuses in the conversation", %{conn: conn} do
|
test "returns the statuses in the conversation", %{conn: conn} do
|
||||||
{:ok, _user} = UserBuilder.insert
|
{:ok, _user} = UserBuilder.insert
|
||||||
|
|
Loading…
Reference in a new issue