Signalements¶
- GET /api/reports¶
Obtenir les signalements.
Scope :
reports:read
Rôle minimum: Modérateur
Exemple de requêtes :
sans paramètres :
GET /api/reports/ HTTP/1.1
avec quelques paramètres de requête :
GET /api/reports?page=1&order=desc&order_by=created_at HTTP/1.1
Exemple de réponses :
renvoyant au moins un signalement :
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" }
renvoyant aucun signalement
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" }
- Paramètres de requête:
object_type (integer) – type de contenu signalé (
comment
,user
ouworkout
)order (string) – ordre de tri :
asc
,desc
(par défaut :desc
)order_by (string) – critère de tri:
created_at
ouupdated_at
page (integer) – page si pagination (par défaut : 1)
reporter (boolean) – nom d’utilisateur du rapporteur
resolved (boolean) – filtrer sur le status des signalements
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
200 OK –
success
invalid payload
invalid 'order_by'
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
- GET /api/reports/(int: report_id)¶
Obtenir un signalement.
Scope :
reports:read
Rôle minimum: Modérateur
Exemple de requête :
GET /api/reports/1 HTTP/1.1
Exemple de réponse :
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" }
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
200 OK –
success
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
report not found
- GET /api/reports/unresolved¶
Obtenir si des signalements non résolus existent
Scope :
reports:read
Rôle minimum: Modérateur
Exemple de requête :
POST /api/reports/unresolved HTTP/1.1
Exemple de réponse :
HTTP/1.1 201 SUCCESS Content-Type: application/json { "status": "success", "unresolved": true }
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
200 OK –
success
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
you do not have permissions
- POST /api/reports¶
Modifier un signalement.
Scope :
reports:write
Exemple de requête :
POST /api/reports HTTP/1.1 Content-Type: application/json
Exemple de réponse :
HTTP/1.1 201 CREATED Content-Type: application/json
- Objet JSON de requête:
note (string) – note décrivant le signalement
object_id (string) – identifiant du contenu signalé
object_type (string) – type du content signalé (
comment
,workout
ouuser
)
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
201 Created – signalement créé
invalid payload
users can not report their own comment
users can not report their own profile
users can not report their own workout
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
you do not have permissions
you do not have permissions, your account is suspended
comment not found
user not found
workout not found
500 Internal Server Error –
Error during comment save.
- PATCH /api/reports/(int: report_id)¶
Modifier un signalement.
Scope :
reports:write
Rôle minimum: Modérateur
Exemple de requête :
PATCH /api/reports/1 HTTP/1.1
Exemple de réponse (signalement sur un profil utilisateur):
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" }
- Paramètres:
report_id (string) – identifiant du signalement
- Objet JSON de requête:
notes (string) – commentaire du signalement (obligatoire)
resolved (boolean) – état du signalement
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
200 OK –
success
invalid payload
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
you do not have permissions
report not found
- POST /api/reports/(int: report_id)/actions¶
Créer une action liée à un signalement.
Scope :
reports:write
Rôle minimum: Modérateur
Exemple de requête :
POST /api/reports/1/actions HTTP/1.1
Exemple de réponse (signalement sur un profil utilisateur):
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" }
- Paramètres:
report_id (string) – identifiant du signalement
- Objet JSON de requête:
action_type (string) – action type (expected value:
user_suspension
,user_unsuspension
,user_warning
,comment_suspension
,comment_unsuspension
,workout_suspension
,workout_unsuspension
)comment_id (string) – identifiant du commentaire concerné par l’action (type:
comment_suspension
,comment_suspension
)reason (string) – texte expliquent la raison de l’action
username (string) – nom de l’utilisateur concerné par l’action (type:
comment_suspension
,comment_suspension
)workout_id (string) – identifiant de la séance concernée par l’action (type:
comment_suspension
,comment_suspension
)
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
200 OK –
success
invalid payload
invalid 'action_type'
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
you do not have permissions
report not found
Error during report save.
- PATCH /api/appeals/(string: appeal_id)¶
Gérer la demande d’appel.
Scope :
users:write
Rôle minimum: Modérateur
Exemple de requête :
POST /api/appeals/Z2Ze5qZrnMVmnDejPphASk HTTP/1.1
Exemple de réponse (signalement sur un profil utilisateur):
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" }
- Paramètres:
appeal_id (string) – identifiant de l’appel
- Objet JSON de requête:
approved (boolean) –
true
si l’appel est accepté,false
si rejetéreason (string) – text expliquant pourquoi l’appel est accepté ou rejeté
- En-têtes de requête:
Authorization – Jeton “OAuth 2.0 Bearer”
- Codes d’état:
200 OK –
success
invalid payload
comment already reactivated
user account has already been reactivated
workout already reactivated
provide a valid auth token
signature expired, please log in again
invalid token, please log in again
you do not have permissions
appeal not found
Error during report save.