Aide
GET /api/v1/chat/history — récupérer les messages
Historique paginé des messages entre vous et un partenaire, technicien ou administrateur via l’API Chat du portail HeyZack.
Ce point de terminaison renvoie l’historique de conversation avec un autre utilisateur. La réponse est paginée et triée du plus ancien au plus récent — la page 1 contient donc les messages les plus anciens. Chaque message inclut les informations d’expéditeur pour afficher un fil complet.
Point de terminaison
GET /api/v1/chat/historyAuthentification
Jeton Bearer obligatoire. Voir Authentification.
Paramètres de requête
handymanIdstringqueryID du technicien dans la conversation. Partenaire ou admin récupérant l’historique avec un technicien.
partnerIdstringqueryID du partenaire. Technicien ou admin récupérant l’historique avec un partenaire.
adminIdstringqueryID de l’admin. Partenaire ou technicien récupérant l’historique avec l’admin.
pagenumberquerydefault: 1Numéro de page (base 1) — la page 1 renvoie les messages les plus anciens.
limitnumberquerydefault: 50Nombre de messages par page.
Note
Exactement un parmi handymanId, partnerId ou adminId est requis — il désigne l’autre partie de la conversation.
Exemple
curl "https://<your-portal-domain>/api/v1/chat/history?partnerId=partner_abc123&page=1&limit=50" \
-H "Authorization: Bearer <your-token>"Réponse de succès
Renvoie 200 OK. L’objet data contient le tableau messages, l’identifiant roomId et un objet pagination.
messagesobject[]Messages triés du plus ancien au plus récent.
Propriétés d’un message
idstringIdentifiant unique du message.
messagestringContenu texte. null pour les messages image.
messageTypestring"text" ou "image".
imageUrlstringURL de l’image pour les messages image. null pour le texte.
imageSizestringChaîne JSON avec fileSize et mimeType pour les images. null pour le texte.
createdAtstringHorodatage ISO 8601 d’envoi.
senderIdstringID de l’expéditeur.
senderNamestringNom affiché de l’expéditeur.
senderRolestringRôle de l’expéditeur : "partner", "handyman" ou "admin".
roomIdstringIdentifiant de la salle contenant ces messages.
paginationobjectMétadonnées de pagination.
Propriétés de pagination
pagenumberNuméro de page renvoyé.
limitnumberNombre de messages par page.
totalnumberNombre total de messages dans la conversation.
hasNextbooleantrue s’il existe une page suivante.
{
"data": {
"messages": [
{
"id": "msg_123",
"message": "Welcome to Heyzack! How can we help you today?",
"messageType": "text",
"imageUrl": null,
"imageSize": null,
"createdAt": "2024-01-16T10:00:00.000Z",
"senderId": "admin_xyz789",
"senderName": "Heyzack Admin",
"senderRole": "admin"
},
{
"id": "msg_124",
"message": "I need help with my account settings.",
"messageType": "text",
"imageUrl": null,
"imageSize": null,
"createdAt": "2024-01-16T10:05:00.000Z",
"senderId": "partner_abc123",
"senderName": "John Doe",
"senderRole": "partner"
},
{
"id": "msg_125",
"message": null,
"messageType": "image",
"imageUrl": "https://storage.example.com/chat/image.jpg",
"imageSize": "{\"fileSize\":123456,\"mimeType\":\"image/jpeg\"}",
"createdAt": "2024-01-16T10:10:00.000Z",
"senderId": "admin_xyz789",
"senderName": "Heyzack Admin",
"senderRole": "admin"
}
],
"roomId": "room_admin_partner_abc123",
"pagination": {
"page": 1,
"limit": 50,
"total": 3,
"hasNext": false
}
}
}Pagination
L’objet pagination contient page, limit, total et hasNext. Pour charger des messages plus anciens, augmentez le numéro de page. Lorsque hasNext est false, vous êtes sur la dernière page (messages les plus récents).
Les messages sont toujours renvoyés en ordre chronologique — du plus ancien au plus récent dans chaque page.
Note
Lorsqu’un partenaire ou un technicien ouvre un chat avec l’admin pour la première fois, un message d’accueil en anglais (« Welcome to Heyzack! How can we help you today? ») apparaît en premier dans l’historique. Il est envoyé automatiquement depuis le compte admin sans action de votre part.