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/history

Authentification

Jeton Bearer obligatoire. Voir Authentification.

Paramètres de requête

handymanIdstringquery

ID du technicien dans la conversation. Partenaire ou admin récupérant l’historique avec un technicien.

partnerIdstringquery

ID du partenaire. Technicien ou admin récupérant l’historique avec un partenaire.

adminIdstringquery

ID de l’admin. Partenaire ou technicien récupérant l’historique avec l’admin.

pagenumberquerydefault: 1

Numéro de page (base 1) — la page 1 renvoie les messages les plus anciens.

limitnumberquerydefault: 50

Nombre 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
idstring

Identifiant unique du message.

messagestring

Contenu texte. null pour les messages image.

messageTypestring

"text" ou "image".

imageUrlstring

URL de l’image pour les messages image. null pour le texte.

imageSizestring

Chaîne JSON avec fileSize et mimeType pour les images. null pour le texte.

createdAtstring

Horodatage ISO 8601 d’envoi.

senderIdstring

ID de l’expéditeur.

senderNamestring

Nom affiché de l’expéditeur.

senderRolestring

Rôle de l’expéditeur : "partner", "handyman" ou "admin".

roomIdstring

Identifiant de la salle contenant ces messages.

paginationobject

Métadonnées de pagination.

Propriétés de pagination
pagenumber

Numéro de page renvoyé.

limitnumber

Nombre de messages par page.

totalnumber

Nombre total de messages dans la conversation.

hasNextboolean

true 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.