Document subscription endpoints, fix typos

Also adds a quick error case on the subscription endpoints
to avoid 500s
This commit is contained in:
Sadposter 2019-04-06 16:20:06 +01:00
commit c05fe4da0a
No known key found for this signature in database
GPG key ID: 6F3BAD60DE190290
2 changed files with 64 additions and 8 deletions

View file

@ -864,22 +864,30 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
def subscribe(%{assigns: %{user: user}} = conn, %{"id" => id}) do
with %User{} = subscription_target <- User.get_by_id(id) do
{:ok, subscription_target} = User.subscribe(user, subscription_target)
with %User{} = subscription_target <- User.get_by_id(id),
{:ok, subscription_target} = User.subscribe(user, subscription_target) do
conn
|> put_view(AccountView)
|> render("relationship.json", %{user: user, target: subscription_target})
else
{:error, message} ->
conn
|> put_resp_content_type("application/json")
|> send_resp(403, Jason.encode!(%{"error" => message}))
end
end
def unsubscribe(%{assigns: %{user: user}} = conn, %{"id" => id}) do
with %User{} = subscription_target <- User.get_by_id(id) do
{:ok, subscription_target} = User.unsubscribe(user, subscription_target)
with %User{} = subscription_target <- User.get_by_id(id),
{:ok, subscription_target} = User.unsubscribe(user, subscription_target) do
conn
|> put_view(AccountView)
|> render("relationship.json", %{user: user, target: subscription_target})
else
{:error, message} ->
conn
|> put_resp_content_type("application/json")
|> send_resp(403, Jason.encode!(%{"error" => message}))
end
end