80 lines
2.3 KiB
Python
80 lines
2.3 KiB
Python
from typing import Optional
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlmodel import Session
|
|
|
|
from core.database import get_session
|
|
from schemas.bot import MessageFeedbackRequest
|
|
from services.chat_history_service import (
|
|
clear_bot_messages_payload,
|
|
clear_dashboard_direct_session_payload,
|
|
delete_bot_message_payload,
|
|
list_bot_messages_by_date_payload,
|
|
list_bot_messages_page_payload,
|
|
list_bot_messages_payload,
|
|
update_bot_message_feedback_payload,
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/messages")
|
|
def list_bot_messages(bot_id: str, limit: int = 200, session: Session = Depends(get_session)):
|
|
return list_bot_messages_payload(session, bot_id, limit=limit)
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/messages/page")
|
|
def list_bot_messages_page(
|
|
bot_id: str,
|
|
limit: Optional[int] = None,
|
|
before_id: Optional[int] = None,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return list_bot_messages_page_payload(session, bot_id, limit=limit, before_id=before_id)
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/messages/by-date")
|
|
def list_bot_messages_by_date(
|
|
bot_id: str,
|
|
date: str,
|
|
tz_offset_minutes: Optional[int] = None,
|
|
limit: Optional[int] = None,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return list_bot_messages_by_date_payload(
|
|
session,
|
|
bot_id,
|
|
date=date,
|
|
tz_offset_minutes=tz_offset_minutes,
|
|
limit=limit,
|
|
)
|
|
|
|
|
|
@router.put("/api/bots/{bot_id}/messages/{message_id}/feedback")
|
|
def update_bot_message_feedback(
|
|
bot_id: str,
|
|
message_id: int,
|
|
payload: MessageFeedbackRequest,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return update_bot_message_feedback_payload(session, bot_id, message_id, payload.feedback)
|
|
|
|
|
|
@router.delete("/api/bots/{bot_id}/messages/{message_id}")
|
|
def delete_bot_message(
|
|
bot_id: str,
|
|
message_id: int,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return delete_bot_message_payload(session, bot_id, message_id)
|
|
|
|
|
|
@router.delete("/api/bots/{bot_id}/messages")
|
|
def clear_bot_messages(bot_id: str, session: Session = Depends(get_session)):
|
|
return clear_bot_messages_payload(session, bot_id)
|
|
|
|
|
|
@router.post("/api/bots/{bot_id}/sessions/dashboard-direct/clear")
|
|
def clear_bot_dashboard_direct_session(bot_id: str, session: Session = Depends(get_session)):
|
|
return clear_dashboard_direct_session_payload(session, bot_id)
|