Add relationships to masto api.
This commit is contained in:
parent
f03524805f
commit
49929321c7
5 changed files with 65 additions and 0 deletions
|
|
@ -7,6 +7,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|
|||
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
||||
alias Pleroma.Web.CommonAPI
|
||||
import Ecto.Query
|
||||
import Logger
|
||||
|
||||
def create_app(conn, params) do
|
||||
|
|
@ -177,6 +178,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|
|||
|> json(result)
|
||||
end
|
||||
|
||||
def relationships(%{assigns: %{user: user}} = conn, %{"id" => id}) do
|
||||
id = List.wrap(id)
|
||||
q = from u in User,
|
||||
where: u.id in ^id
|
||||
targets = Repo.all(q)
|
||||
render conn, AccountView, "relationships.json", %{user: user, targets: targets}
|
||||
end
|
||||
|
||||
def empty_array(conn, _) do
|
||||
Logger.debug("Unimplemented, returning an empty array")
|
||||
json(conn, [])
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||
use Pleroma.Web, :view
|
||||
alias Pleroma.User
|
||||
alias Pleroma.Web.MastodonAPI.AccountView
|
||||
|
||||
defp image_url(%{"url" => [ %{ "href" => href } | t ]}), do: href
|
||||
defp image_url(_), do: nil
|
||||
|
|
@ -38,4 +39,20 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
|||
url: user.ap_id
|
||||
}
|
||||
end
|
||||
|
||||
def render("relationship.json", %{user: user, target: target}) do
|
||||
%{
|
||||
id: target.id,
|
||||
following: User.following?(target, user),
|
||||
followed_by: User.following?(user, target),
|
||||
blocking: false,
|
||||
muting: false,
|
||||
requested: false,
|
||||
domain_blocking: false
|
||||
}
|
||||
end
|
||||
|
||||
def render("relationships.json", %{user: user, targets: targets}) do
|
||||
render_many(targets, AccountView, "relationship.json", user: user, as: :target)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ defmodule Pleroma.Web.Router do
|
|||
pipe_through :authenticated_api
|
||||
|
||||
get "/accounts/verify_credentials", MastodonAPIController, :verify_credentials
|
||||
get "/accounts/relationships", MastodonAPIController, :relationships
|
||||
|
||||
get "/timelines/home", MastodonAPIController, :home_timeline
|
||||
|
||||
post "/statuses", MastodonAPIController, :post_status
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue