Chat Rooms
Endpoints for managing Matrix chat rooms.
Create Chat Room
Create a new chat room.
Endpoint
POST /api/auth/chat-room
Request
json
{
"name": "Match Discussion",
"topic": "Manchester United vs Liverpool",
"event_id": 1,
"is_private": false
}
Response
json
{
"message": "Chat room created successfully",
"data": {
"room_id": "!abc123:matrix.server",
"name": "Match Discussion",
"topic": "Manchester United vs Liverpool",
"event_id": 1,
"creator_id": 1,
"is_encrypted": false,
"join_rule": "public"
}
}
List Chat Rooms
Get a list of available chat rooms.
Endpoint
GET /api/auth/chat-rooms
Query Parameters
joined
(optional) - Filter rooms user has joined (true/false)event_id
(optional) - Filter by associated eventsearch
(optional) - Search by room name
Response
json
{
"data": [
{
"room_id": "!abc123:matrix.server",
"name": "Match Discussion",
"topic": "Manchester United vs Liverpool",
"event": {
"id": 1,
"home_team": "Manchester United",
"away_team": "Liverpool",
"start_time": "2024-01-15T15:00:00Z"
},
"member_count": 150,
"is_joined": true,
"is_encrypted": false,
"last_activity": "2024-01-15T10:00:00Z"
}
]
}
Join Chat Room
Join an existing chat room.
Endpoint
POST /api/auth/chat-rooms/{matrixRoomId}/join
Response
json
{
"message": "Successfully joined chat room",
"data": {
"room_id": "!abc123:matrix.server",
"membership": "join"
}
}
Error Responses
404
- Room not found403
- Not allowed to join (private room)409
- Already a member
Get Chat Room Member Stats
Get statistics about chat room members.
Endpoint
GET /api/auth/chat-rooms/{chatRoom}/member-stats
Response
json
{
"data": {
"total_members": 150,
"active_members": 45,
"predictions_made": 120,
"team_distribution": {
"manchester_united": 80,
"liverpool": 50,
"neutral": 20
},
"top_predictors": [
{
"user_id": 1,
"username": "user123",
"correct_predictions": 25,
"accuracy": 0.75
}
]
}
}
Notes
- Room IDs use Matrix format (!roomid:server)
- Encrypted rooms require E2EE key setup
- Public rooms can be joined without invitation