0% found this document useful (0 votes)
3 views6 pages

Chat API

The Chat API allows users to create or get chat rooms, send messages with various media types, retrieve messages, check unread message counts, and delete messages. Each endpoint has specific request parameters and success/error responses, including authentication and validation rules. Key operations include creating rooms with a required receiverId, sending messages with a required roomId, and managing message visibility and deletion.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views6 pages

Chat API

The Chat API allows users to create or get chat rooms, send messages with various media types, retrieve messages, check unread message counts, and delete messages. Each endpoint has specific request parameters and success/error responses, including authentication and validation rules. Key operations include creating rooms with a required receiverId, sending messages with a required roomId, and managing message visibility and deletion.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Chat API Documentation

Base URL

/api/chat

1. Create / Get Room

POST /api/chat/room

Request

Query Param:

receiverId (Long) → required

Success Response (200)

"room-123456"

Errors

400 Bad Request

"status": 400,
"error": "Bad Request",
"message": "receiverId is required"
}
{
"status": 400,
"error": "Bad Request",
"message": "Cannot create chat with yourself"
}
404 Not Found

{
"status": 404,
"error": "Not Found",
"message": "Receiver not found"
}

401 Unauthorized

{
"status": 401,
"error": "Unauthorized",
"message": "User not authenticated"
}

2. Send Message

POST /api/chat/send

Content-Type: multipart/form-data

ENUM: MESSAGE TYPE:->TEXT, IMAGE, VOICE, VIDEO,FILE

Request

Field Type Required

content String optional

mediaFiles List optional

type MessageType optional

roomId String required

Validation Rules: content OR mediaFiles

Success Response (200)

{
"id": "msg-1",
"roomId": "room-123",
"senderId": 1,
"senderName": "Menna",
"senderRole": "USER", // ASSISTANT, SYSTEM
"senderUserType": "CONSUMER",
"receiverId": 2,
"receiverName": "Ahmed",
"content": "Hello",
"type": "TEXT",
"mediaUrls": [],
"timestamp": "2026-04-18T15:30:00",
"read": false
}
Errors
400 Bad Request
{
"message": "roomId is required"
}
{
"message": "Message must contain content or media"
}
{
"message": "Only image/video files are allowed"
}
401 Unauthorized

"message": "User not authenticated"

403 Forbidden

{
"message": "You are not allowed in this room"
}
404 Not Found

"message": "Room not found"

3. Get Messages

GET /api/chat/messages

Request Params

Param Type Required

roomId String YES

page int YES

size int YES


Success Response (200)

[
{
"id": "a6c62283-4409-4c2f-9dfb-2e560f377a26",
"roomId": "0684c2c8-df5f-4979-a7d2-117b91828c44",
"senderId": 54,
"senderName": "omar",
"senderRole": "USER",
"senderUserType": "CONSUMER",
"receiverId": 53,
"receiverName": "NADA",
"content": "hello",
"type": "TEXT",
"mediaUrls": [],
"timestamp": "2026-03-27T00:01:11.506242",
"read": true
}
]
Errors

400

{
"message": "roomId is required"
}
{
"message": "Invalid pagination parameters"
}

403

{
"message": "You are not allowed in this room"
}

404

{
"message": "Room not found"
}

4. Get Unread Count


GET /api/chat/unread

Request

roomId (String) → required

Success Response (200)

Errors

400

{
"message": "roomId is required"
}

403

{
"message": "You are not allowed in this room"
}

404

{
"message": "Room not found"
}

5. Delete Message

DELETE /api/chat/message/{id}

Success Response (204)

No Content

Errors

401

{
"message": "User not authenticated"
}
403
{
"message": "You cannot delete this message"
}
404

{
"message": "Message not found"
}

You might also like