123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- from fastapi import APIRouter, Depends
- from sqlalchemy.ext.asyncio import AsyncSession
- from app.api.deps import get_token_id, get_async_session
- from app.models.thread import Thread, ThreadUpdate, ThreadCreate
- from app.schemas.common import DeleteResponse
- from app.services.thread.thread import ThreadService
- router = APIRouter()
- @router.post("", response_model=Thread)
- async def create_thread(
- *, session: AsyncSession = Depends(get_async_session), body: ThreadCreate, token_id=Depends(get_token_id)
- ) -> Thread:
- """
- Create a thread.
- """
- return await ThreadService.create_thread(session=session, body=body, token_id=token_id)
- @router.get("/{thread_id}", response_model=Thread)
- async def get_thread(*, session: AsyncSession = Depends(get_async_session), thread_id: str) -> Thread:
- """
- Retrieves a thread.
- """
- return await ThreadService.get_thread(session=session, thread_id=thread_id)
- @router.post("/{thread_id}", response_model=Thread)
- async def modify_thread(
- *, session: AsyncSession = Depends(get_async_session), thread_id: str, body: ThreadUpdate
- ) -> Thread:
- """
- Modifies a thread.
- """
- return await ThreadService.modify_thread(session=session, thread_id=thread_id, body=body)
- @router.delete("/{thread_id}", response_model=DeleteResponse)
- async def delete_thread(*, session: AsyncSession = Depends(get_async_session), thread_id: str) -> DeleteResponse:
- """
- Delete a thread.
- """
- return await ThreadService.delete_assistant(session=session, thread_id=thread_id)
|