Aide
POST /api/v1/chat/upload-image — envoyer une image
Téléverser une image JPEG, PNG, WebP ou GIF et l’envoyer comme message de chat via l’API du portail HeyZack.
Ce point de terminaison téléverse un fichier image et l’envoie comme message dans une conversation. La requête utilise multipart/form-data (pas JSON) : le binaire image et l’ID du destinataire sont des champs de formulaire. Le serveur stocke l’image et renvoie une URL d’affichage.
Point de terminaison
POST /api/v1/chat/upload-imageAuthentification
Jeton Bearer obligatoire. Voir Authentification.
Format de la requête
multipart/form-data — n’utilisez pas Content-Type: application/json. Le client HTTP définit automatiquement le type multipart avec fichier joint.
Formats pris en charge
JPEG, PNG, WebP, GIF.
Champs du formulaire
imagefilebodyrequiredFichier image à téléverser (JPEG, PNG, WebP, GIF).
handymanIdstringbodyID du technicien destinataire. Partenaire ou admin envoyant à un technicien.
partnerIdstringbodyID du partenaire destinataire. Technicien ou admin envoyant à un partenaire.
adminIdstringbodyID de l’admin destinataire. Partenaire ou technicien envoyant à l’admin.
Note
Exactement un parmi handymanId, partnerId ou adminId doit être présent dans chaque requête.
Exemple
curl -X POST "https://<your-portal-domain>/api/v1/chat/upload-image" \
-H "Authorization: Bearer <your-token>" \
-F "image=@/path/to/image.jpg" \
-F "handymanId=handyman_xyz456"Réponse de succès
Renvoie 200 OK avec l’objet message créé sous data.
idstringIdentifiant unique du message.
roomIdstringSalle de chat concernée.
senderIdstringID de l’expéditeur de l’image (utilisateur authentifié).
messageTypestringToujours "image" pour ce point de terminaison.
imageUrlstringURL publique de l’image téléversée pour affichage dans votre application.
imageSizestringChaîne JSON avec fileSize (octets) et mimeType du fichier.
createdAtstringHorodatage ISO 8601 de création du message.
{
"message": "Image uploaded and sent successfully",
"data": {
"id": "msg_123456",
"roomId": "room_admin_handyman_xyz456",
"senderId": "user_xyz456",
"messageType": "image",
"imageUrl": "https://storage.example.com/chat/image.jpg",
"imageSize": "{\"fileSize\":123456,\"mimeType\":\"image/jpeg\"}",
"createdAt": "2024-01-16T10:30:00.000Z"
}
}Réponses d’erreur
| Statut | Message d’erreur | Cause |
|---|---|---|
| 400 | "partnerId, handymanId, or adminId is required" | Aucun ID destinataire |
| 400 | "Admin can only chat with either partner or handyman, not both" | Plus d’un ID destinataire pour l’admin |
| 400 | "Invalid recipient role" | ID ne correspond pas à un rôle valide |
| 403 | "Handyman and partner are not connected" | Pas de lien chantier/installation |
| 404 | "Recipient user not found" | Utilisateur introuvable |
| 500 | "Internal server error" | Erreur serveur |