Reports¶
- GET /api/reports¶
Get reports.
Scope:
reports:readMinimum role: Moderator
Example requests:
without parameters:
GET /api/reports/ HTTP/1.1
with some query parameters:
GET /api/reports?page=1&order=desc&order_by=created_at HTTP/1.1
Example responses:
returning at least one report:
HTTP/1.1 200 SUCCESS Content-Type: application/json { "pagination": { "has_next": false, "has_prev": false, "page": 1, "pages": 1, "total": 1 }, "reports": [ { "created_at": "Sun, 01 Dec 2024 18:17:30 GMT", "id": 1, "is_reported_user_warned": false, "note": "<REPORT NOTE>", "object_type": "user", "reported_by": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" }, "reported_comment": null, "reported_user": { "blocked": false, "created_at": "Sun, 01 Dec 2024 17:27:49 GMT", "email": "sam@example.com", "followers": 0, "following": 0, "follows": "false", "is_active": true, "is_followed_by": "false", "nb_workouts": 1, "picture": false, "role": "user", "suspended_at": null, "username": "Sam" }, "reported_workout": null, "resolved": false, "resolved_at": null, "resolved_by": null, "updated_at": null } ], "status": "success" }
returning no reports
HTTP/1.1 200 OK Content-Type: application/json { "pagination": { "has_next": false, "has_prev": false, "page": 1, "pages": 0, "total": 0 }, "reports": [], "status": "success" }
- Query Parameters:
object_type (integer) – reported content type (
comment,userorworkout)order (string) – sorting order:
asc,desc(default:desc)order_by (string) – sorting criteria:
created_atorupdated_atpage (integer) – page if using pagination (default: 1)
reporter (boolean) – reporter username
resolved (boolean) – filter on report status
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
200 OK –
successinvalid payloadinvalid 'order_by'
provide a valid auth tokensignature expired, please log in againinvalid token, please log in again
- GET /api/reports/(int: report_id)¶
Get report.
Scope:
reports:readMinimum role: Moderator
Example request:
GET /api/reports/1 HTTP/1.1
Example response:
HTTP/1.1 200 SUCCESS Content-Type: application/json { "report": { "comments": [], "created_at": "Sun, 01 Dec 2024 18:17:30 GMT", "id": 1, "is_reported_user_warned": false, "note": "<REPORT NOTE>", "object_type": "user", "report_actions": [], "reported_by": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" }, "reported_comment": null, "reported_user": { "blocked": false, "created_at": "Sun, 01 Dec 2024 17:27:49 GMT", "email": "sam@example.com", "followers": 0, "following": 0, "follows": "false", "is_active": true, "is_followed_by": "false", "nb_workouts": 1, "picture": false, "role": "user", "suspended_at": null, "username": "Sam" }, "reported_workout": null, "resolved": false, "resolved_at": null, "resolved_by": null, "updated_at": null }, "status": "success" }
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
200 OK –
successprovide a valid auth tokensignature expired, please log in againinvalid token, please log in again
report not found
- GET /api/reports/unresolved¶
Get if unresolved reports exist.
Scope:
reports:readMinimum role: Moderator
Example request:
POST /api/reports/unresolved HTTP/1.1
Example response:
HTTP/1.1 201 SUCCESS Content-Type: application/json { "status": "success", "unresolved": true }
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
200 OK –
successprovide a valid auth tokensignature expired, please log in againinvalid token, please log in again
you do not have permissions
- POST /api/reports¶
Create a report.
Scope:
reports:writeExample request:
POST /api/reports HTTP/1.1 Content-Type: application/json
Example response:
HTTP/1.1 201 CREATED Content-Type: application/json
- Request JSON Object:
note (string) – note describing report
object_id (string) – id of content reported
object_type (string) – type of content reported (
comment,workoutoruser)
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
201 Created – report created
invalid payloadusers can not report their own commentusers can not report their own profileusers can not report their own workout
provide a valid auth tokensignature expired, please log in againinvalid token, please log in again
you do not have permissionsyou do not have permissions, your account is suspended
comment not founduser not foundworkout not found
500 Internal Server Error –
Error during comment save.
- PATCH /api/reports/(int: report_id)¶
Update report.
Scope:
reports:writeMinimum role: Moderator
Example request:
PATCH /api/reports/1 HTTP/1.1
Example response (report on user profile):
HTTP/1.1 200 SUCCESS Content-Type: application/json { "report": { "comments": [ { "comment": "<REPORT COMMENT>", "created_at": "Sun, 01 Dec 2024 18:21:38 GMT", "id": 1, "report_id": 1, "user": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" } } ], "created_at": "Sun, 01 Dec 2024 18:17:30 GMT", "id": 1, "is_reported_user_warned": false, "note": "<REPORT NOTE>", "object_type": "user", "report_actions": [], "reported_by": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" }, "reported_comment": null, "reported_user": { "blocked": false, "created_at": "Sun, 01 Dec 2024 17:27:49 GMT", "email": "sam@example.com", "followers": 0, "following": 0, "follows": "false", "is_active": true, "is_followed_by": "false", "nb_workouts": 1, "picture": false, "role": "user", "suspended_at": null, "username": "Sam" }, "reported_workout": null, "resolved": false, "resolved_at": null, "resolved_by": null, "updated_at": "Sun, 01 Dec 2024 18:21:38 GMT" }, "status": "success" }
- Parameters:
report_id (string) – report id
- Request JSON Object:
notes (string) – report comment (mandatory)
resolved (boolean) – report status
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
200 OK –
successinvalid payload
provide a valid auth tokensignature expired, please log in againinvalid token, please log in again
you do not have permissions
report not found
- POST /api/reports/(int: report_id)/actions¶
Create report action.
Scope:
reports:writeMinimum role: Moderator
Example request:
POST /api/reports/1/actions HTTP/1.1
Example response (report on user profile):
HTTP/1.1 201 SUCCESS Content-Type: application/json { "report": { "comments": [ { "comment": "<REPORT COMMENT>", "created_at": "Sun, 01 Dec 2024 18:21:38 GMT", "id": 1, "report_id": 1, "user": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" } } ], "created_at": "Sun, 01 Dec 2024 18:17:30 GMT", "id": 1, "is_reported_user_warned": false, "note": "<REPORT NOTE>", "object_type": "user", "report_actions": [ { "action_type": "user_warning", "appeal": null, "created_at": "Wed, 04 Dec 2024 09:12:25 GMT", "id": "Hv9KwVDtBHhyfvML7PHovq", "moderator": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" }, "reason": "<ACTION REASON>", "report_id": 1, "user": { "blocked": false, "created_at": "Sun, 01 Dec 2024 17:27:49 GMT", "email": "sam@example.com", "followers": 0, "following": 0, "follows": "false", "is_active": true, "is_followed_by": "false", "nb_workouts": 1, "picture": false, "role": "user", "suspended_at": null, "username": "Sam" } } ], "reported_by": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" }, "reported_comment": null, "reported_user": { "blocked": false, "created_at": "Sun, 01 Dec 2024 17:27:49 GMT", "email": "sam@example.com", "followers": 0, "following": 0, "follows": "false", "is_active": true, "is_followed_by": "false", "nb_workouts": 1, "picture": false, "role": "user", "suspended_at": null, "username": "Sam" }, "reported_workout": null, "resolved": false, "resolved_at": null, "resolved_by": null, "updated_at": "Sun, 01 Dec 2024 18:21:38 GMT" }, "status": "success" }
- Parameters:
report_id (string) – report id
- Request JSON Object:
action_type (string) – action type (expected value:
user_suspension,user_unsuspension,user_warning,comment_suspension,comment_unsuspension,workout_suspension,workout_unsuspension)comment_id (string) – id of comment affected by action (type:
comment_suspension,comment_suspension)reason (string) – text explaining the reason for the action
username (string) – username of user affected by action (type:
user_suspension,user_unsuspension,user_warning)workout_id (string) – id of workout affected by action (type:
workout_suspension,workout_unsuspension)
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
200 OK –
successinvalid payloadinvalid 'action_type'
provide a valid auth tokensignature expired, please log in againinvalid token, please log in again
you do not have permissions
report not found
Error during report save.
- PATCH /api/appeals/(string: appeal_id)¶
Process appeal.
Scope:
users:writeMinimum role: Moderator
Example request:
POST /api/appeals/Z2Ze5qZrnMVmnDejPphASk HTTP/1.1
Example response (report on user profile):
HTTP/1.1 201 SUCCESS Content-Type: application/json { "appeal": { "approved": true, "created_at": "Wed, 04 Dec 2024 09:29:18 GMT", "id": "Z2Ze5qZrnMVmnDejPphASk", "moderator": { "created_at": "Sun, 01 Dec 2024 17:27:56 GMT", "email": "moderator@example.com", "followers": 0, "following": 0, "is_active": true, "nb_workouts": 0, "picture": false, "role": "moderator", "suspended_at": null, "username": "moderator" }, "reason": "<REASON>", "text": "<APPEAL TEXT>", "updated_at": "Wed, 04 Dec 2024 09:30:21 GMT", "user": { "blocked": false, "created_at": "Sun, 01 Dec 2024 17:27:49 GMT", "email": "sam@example.com", "followers": 0, "following": 0, "follows": "false", "is_active": true, "is_followed_by": "false", "nb_workouts": 1, "picture": false, "role": "user", "suspended_at": null, "username": "Sam" } }, "status": "success" }
- Parameters:
appeal_id (string) – appeal id
- Request JSON Object:
approved (boolean) –
trueif appeal is approved,falseif rejectedreason (string) – text explaining why the appeal was approved or rejected
- Request Headers:
Authorization – OAuth 2.0 Bearer Token
- Status Codes:
200 OK –
successinvalid payloadcomment already reactivateduser account has already been reactivatedworkout already reactivated
provide a valid auth tokensignature expired, please log in againinvalid token, please log in again
you do not have permissions
appeal not found
Error during report save.