Skip to main content

API Commentaires des Plaintes

Endpoints pour la gestion des commentaires sur les plaintes.

Endpoints

MethodeEndpointDescription
GET/api/plaintes/{id}/commentsListe des commentaires
POST/api/plaintes/{id}/commentsAjouter un commentaire
PUT/api/plaintes/{id}/comments/{commentId}Modifier un commentaire
DELETE/api/plaintes/{id}/comments/{commentId}Supprimer un commentaire

Liste des commentaires

GET /api/plaintes/{id}/comments

Parametres

ParametreTypeDescription
typestringFiltrer par type (interne, public, systeme)
includeDeletedboolInclure les commentaires supprimes

Exemple

curl "https://sig.ucp-pch.org/api/plaintes/550e8400-e29b-41d4-a716-446655440000/comments" \
-H "Authorization: Bearer TOKEN"

Reponse

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"contenu": "J'ai verifie le dossier. Le beneficiaire a raison.",
"type": "interne",
"auteur": {
"id": 1,
"nom": "M. Mendes",
"role": "Agent GRM"
},
"parent": null,
"replies": [
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"contenu": "@M.Mendes Merci pour la verification.",
"type": "interne",
"auteur": {
"id": 2,
"nom": "Mme Silva"
},
"createdAt": "2026-03-15T10:45:00+00:00"
}
],
"mentions": ["M.Mendes"],
"isEdited": false,
"isDeleted": false,
"createdAt": "2026-03-15T10:30:00+00:00",
"updatedAt": null
},
{
"id": "550e8400-e29b-41d4-a716-446655440003",
"contenu": "Plainte passee au statut 'Resolue'",
"type": "systeme",
"auteur": null,
"createdAt": "2026-03-15T11:05:00+00:00"
}
]
}

Ajouter un commentaire

POST /api/plaintes/{id}/comments

Corps de requete

{
"contenu": "J'ai contacte le beneficiaire pour clarification.",
"type": "interne",
"parentId": null
}

Champs

ChampTypeObligatoireDescription
contenustringOuiTexte du commentaire
typestringOuiType: interne ou public
parentIduuidNonID du commentaire parent (reponse)

Types de commentaires

TypeDescriptionVisibilite
interneDiscussion entre agentsEquipe uniquement
publicCommunication avec le plaignantTous
note

Les commentaires de type systeme sont generes automatiquement et ne peuvent pas etre crees via l'API.

Mentions

Utilisez @NomPrenom dans le contenu pour mentionner un utilisateur. Les mentions sont extraites automatiquement.

Reponse

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440004",
"contenu": "J'ai contacte le beneficiaire pour clarification.",
"type": "interne",
"auteur": {
"id": 1,
"nom": "M. Mendes"
},
"parent": null,
"mentions": [],
"isEdited": false,
"createdAt": "2026-03-15T14:00:00+00:00"
}
}

Repondre a un commentaire

POST /api/plaintes/{id}/comments

Corps de requete

{
"contenu": "@M.Mendes D'accord, tenez-moi informe.",
"type": "interne",
"parentId": "550e8400-e29b-41d4-a716-446655440001"
}

La reponse sera liee au commentaire parent et apparaitra dans son champ replies.


Modifier un commentaire

PUT /api/plaintes/{id}/comments/{commentId}

Corps de requete

{
"contenu": "J'ai contacte le beneficiaire par telephone. Il confirme le probleme."
}

Contraintes

  • Seul l'auteur ou un superviseur peut modifier
  • Les commentaires systeme ne sont pas modifiables
  • Le type ne peut pas etre change

Reponse

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440004",
"contenu": "J'ai contacte le beneficiaire par telephone. Il confirme le probleme.",
"type": "interne",
"isEdited": true,
"updatedAt": "2026-03-15T14:30:00+00:00"
}
}

Supprimer un commentaire

DELETE /api/plaintes/{id}/comments/{commentId}

Comportement

La suppression est logique (soft delete) :

  • Le commentaire est marque comme supprime
  • Le contenu est remplace par "[Commentaire supprime]"
  • L'historique est preserve

Reponse

{
"success": true,
"message": "Commentaire supprime"
}

Contraintes

  • Seul l'auteur ou un superviseur peut supprimer
  • Les commentaires systeme ne sont pas supprimables

Codes d'erreur

CodeDescription
400Requete invalide
401Non authentifie
403Permission refusee (pas auteur)
404Plainte ou commentaire non trouve
422Erreur de validation

Permissions

ActionPermission
Lire les commentairesplaintes.view
Lire les commentaires internesMembre de l'equipe
Ajouter un commentaireplaintes.comment
Modifier un commentaireAuteur ou superviseur
Supprimer un commentaireAuteur ou superviseur