Aller au contenu principal

API Chat

Objectif

Gérer les messages, lectures, éditions et suppressions dans des rooms de chat.

Périmètre

Messages par room, envoi, read receipts, édition et suppression.

Applications consommatrices

  • DMV.
  • AssoSuite.
  • Mairie ou backoffice si usage confirmé.
  • Toute app autorisée, le module est décrit comme agnostique de l’application.

Authentification requise

Toutes les routes visibles utilisent identify.app + auth:sanctum.

Permissions/RBAC

  • L’utilisateur doit appartenir ou avoir accès à la room.
  • Les droits d’édition/suppression doivent être vérifiés côté Laravel.
  • Les données chat sont sensibles.

Endpoints confirmés visibles

MéthodeRouteAuthNotes
GET/api/v1/chat/rooms/{roomId}/messagesauth:sanctumListe messages.
POST/api/v1/chat/rooms/{roomId}/messagesauth:sanctumEnvoi message.
POST/api/v1/chat/rooms/{roomId}/readauth:sanctumMarquer comme lu.
PATCH/api/v1/chat/messages/{messageId}auth:sanctumÉditer message.
DELETE/api/v1/chat/messages/{messageId}auth:sanctumSupprimer message.

Endpoints cibles si nécessaire

  • Création/liste des rooms à confirmer si le module doit exposer cette gestion.
  • Pièces jointes chat à confirmer.

Exemples génériques de requête/réponse

POST /api/v1/chat/rooms/room-id/messages
Authorization: Bearer <token>
X-App-Source: dmv
Content-Type: application/json

{
"content": "Bonjour"
}
{
"message": {
"id": "message-id",
"room_id": "room-id",
"content": "Bonjour",
"created_at": "2026-05-10T10:00:00Z"
}
}

Erreurs principales

{
"error": "chat_access_denied",
"message": "Vous n’avez pas accès à cette conversation."
}

Audit/logs si applicable

  • Suppressions, éditions et signalements éventuels doivent être auditables.
  • Ne pas logger le contenu complet des messages sans nécessité stricte.

Sécurité

  • Les messages sont des données sensibles.
  • Accès room obligatoire côté backend.
  • Éviter l’exposition des messages à l’IA sans base légale et filtrage.
  • Prévoir politique de rétention et suppression.

État actuel vs cible

SujetÉtat actuelCible
MessagesRoutes confirmées.Contrat room/membres/rétention clarifié.
RoomsRoutes de création non visibles.Gestion room à documenter si livrée.
Read receiptsRoute confirmée.Modèle lu/non lu stabilisé.

Points à confirmer

  • Modèle de room et participants.
  • Pagination messages.
  • Rétention et export RGPD.
  • Modération/signalement chat.