Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
c05fe4da
Verified
Commit
c05fe4da
authored
Apr 06, 2019
by
Sadposter
Browse files
Document subscription endpoints, fix typos
Also adds a quick error case on the subscription endpoints to avoid 500s
parent
ffac2593
Changes
2
Hide whitespace changes
Inline
Side-by-side
docs/api/pleroma_api.md
View file @
c05fe4da
...
...
@@ -52,7 +52,7 @@ Request parameters can be passed via [query strings](https://en.wikipedia.org/wi
*
`confirm`
*
`captcha_solution`
: optional, contains provider-specific captcha solution,
*
`captcha_token`
: optional, contains provider-specific captcha token
*
`token`
: invite token required when the regist
e
rations aren't public.
*
`token`
: invite token required when the registrations aren't public.
*
Response: JSON. Returns a user object on success, otherwise returns
`{"error": "error_msg"}`
*
Example response:
```
...
...
@@ -114,5 +114,53 @@ See [Admin-API](Admin-API.md)
*
Method
`POST`
*
Authentication: required
*
Params:
*
`id`
: notification
s
's id
*
`id`
: notification's id
*
Response: JSON. Returns
`{"status": "success"}`
if the reading was successful, otherwise returns
`{"error": "error_msg"}`
## `/api/v1/pleroma/accounts/:id/subscribe`
### Subscribe to receive notifications for all statuses posted by a user
*
Method
`POST`
*
Authentication: required
*
Params:
*
`id`
: account id to subscribe to
*
Response: JSON, returns a mastodon relationship object on success, otherwise returns
`{"error": "error_msg"}`
*
Example response:
```
json
{
id:
"abcdefg"
,
following:
true
,
followed_by:
false
,
blocking:
false
,
muting:
false
,
muting_notifications:
false
,
subscribing:
true
,
requested:
false
,
domain_blocking:
false
,
showing_reblogs:
true
,
endorsed:
false
}
```
## `/api/v1/pleroma/accounts/:id/unsubscribe`
### Unsubscribe to stop receiving notifications from user statuses
*
Method
`POST`
*
Authentication: required
*
Params:
*
`id`
: account id to unsubscribe from
*
Response: JSON, returns a mastodon relationship object on success, otherwise returns
`{"error": "error_msg"}`
*
Example response:
```
json
{
id:
"abcdefg"
,
following:
true
,
followed_by:
false
,
blocking:
false
,
muting:
false
,
muting_notifications:
false
,
subscribing:
false
,
requested:
false
,
domain_blocking:
false
,
showing_reblogs:
true
,
endorsed:
false
}
```
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
c05fe4da
...
...
@@ -864,22 +864,30 @@ def unblock_domain(%{assigns: %{user: blocker}} = conn, %{"domain" => domain}) d
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
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment