wx-agent/admin_routes.py

40 lines
1.1 KiB
Python

from datetime import datetime
from typing import Optional
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from tools.conversation_cleanup import (
delete_conversation_by_chat_id,
delete_conversations_by_time,
)
router = APIRouter(prefix="/api/admin", tags=["admin"])
class DeleteConversationByChatRequest(BaseModel):
chat_id: str
class DeleteConversationsByTimeRequest(BaseModel):
before: Optional[datetime] = None
after: Optional[datetime] = None
@router.post("/conversations/delete/by-chat")
async def delete_by_chat(request: DeleteConversationByChatRequest):
if not request.chat_id.strip():
raise HTTPException(status_code=400, detail="chat_id is empty")
return await delete_conversation_by_chat_id(request.chat_id)
@router.post("/conversations/delete/by-time")
async def delete_by_time(request: DeleteConversationsByTimeRequest):
if request.before is None and request.after is None:
raise HTTPException(status_code=400, detail="before or after is required")
return await delete_conversations_by_time(
before=request.before,
after=request.after,
)