1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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)
|