Source code for klea_utils.api.messages
#!/usr/bin/env python3
"""
Message history endpoints for chat sessions.
File: klea_utils/api/messages.py
Copyright 2026 Ankur Sinha
Author: Ankur Sinha <sanjay DOT ankur AT gmail DOT com>
"""
import logging
from fastapi import APIRouter, HTTPException, Request
from klea_utils.api.sessions_db import SessionStore
logger = logging.getLogger(__name__)
[docs]
def create_messages_router() -> APIRouter:
"""Create an APIRouter for chat message history.
``GET /chat/{user_id}/{chat_id}/messages``
Return all messages for a chat, oldest first.
"""
router = APIRouter(prefix="/chat", tags=["messages"])
@router.get("/{user_id}/{chat_id}/messages")
async def get_messages(user_id: str, chat_id: str, request: Request):
store: SessionStore = request.app.state.chat_sessions
if not store.get_chat(user_id, chat_id):
logger.warning("get_messages(%s, %s): chat not found", user_id, chat_id)
raise HTTPException(status_code=404, detail="Chat not found")
msgs = store.get_messages(user_id, chat_id)
logger.debug("get_messages(%s, %s): %d message(s)", user_id, chat_id, len(msgs))
return msgs
return router