4a93bd1c44
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.api.reviews import require_current_user
|
|
from app.core.response import success_response
|
|
from app.db import get_db_session
|
|
from app.services.chat_service import ChatService
|
|
|
|
router = APIRouter(prefix="/conversations", tags=["conversations"])
|
|
ROUTE_PERMISSION_SCOPE = "chat_history"
|
|
ROUTE_PERMISSION_ACTIONS = {
|
|
"list": "conversations:list",
|
|
"detail": "conversations:detail",
|
|
}
|
|
|
|
|
|
def get_chat_service(db: Session = Depends(get_db_session)) -> ChatService:
|
|
return ChatService(db)
|
|
|
|
|
|
@router.get("")
|
|
def list_conversations(
|
|
page: int = 1,
|
|
page_size: int = 20,
|
|
chat_service: ChatService = Depends(get_chat_service),
|
|
current_user: dict = Depends(require_current_user),
|
|
):
|
|
return success_response(chat_service.list_conversations(current_user, page, page_size))
|
|
|
|
|
|
@router.get("/{conversation_id}")
|
|
def get_conversation_detail(
|
|
conversation_id: str,
|
|
chat_service: ChatService = Depends(get_chat_service),
|
|
current_user: dict = Depends(require_current_user),
|
|
):
|
|
return success_response(chat_service.get_conversation_detail(current_user, conversation_id))
|