2023-08-03 11:37:13 +03:00
|
|
|
from uuid import UUID
|
|
|
|
|
2023-08-03 10:53:38 +03:00
|
|
|
from fastapi import APIRouter, Depends
|
2023-11-14 16:31:02 +03:00
|
|
|
from middlewares.auth import AuthBearer
|
2023-11-23 16:13:21 +03:00
|
|
|
from modules.prompt.entity.prompt import (
|
2023-08-03 11:37:13 +03:00
|
|
|
CreatePromptProperties,
|
2023-11-23 16:13:21 +03:00
|
|
|
Prompt,
|
2023-08-03 11:37:13 +03:00
|
|
|
PromptUpdatableProperties,
|
|
|
|
)
|
2023-11-23 16:13:21 +03:00
|
|
|
from modules.prompt.service import PromptService
|
2023-08-03 10:53:38 +03:00
|
|
|
|
|
|
|
prompt_router = APIRouter()
|
|
|
|
|
2023-11-23 16:13:21 +03:00
|
|
|
promptService = PromptService()
|
|
|
|
|
2023-08-03 10:53:38 +03:00
|
|
|
|
|
|
|
@prompt_router.get("/prompts", dependencies=[Depends(AuthBearer())], tags=["Prompt"])
|
|
|
|
async def get_prompts() -> list[Prompt]:
|
|
|
|
"""
|
|
|
|
Retrieve all public prompt
|
|
|
|
"""
|
2023-11-23 16:13:21 +03:00
|
|
|
return promptService.get_public_prompts()
|
2023-08-03 11:37:13 +03:00
|
|
|
|
|
|
|
|
|
|
|
@prompt_router.get(
|
|
|
|
"/prompts/{prompt_id}", dependencies=[Depends(AuthBearer())], tags=["Prompt"]
|
|
|
|
)
|
|
|
|
async def get_prompt(prompt_id: UUID) -> Prompt | None:
|
|
|
|
"""
|
|
|
|
Retrieve a prompt by its id
|
|
|
|
"""
|
|
|
|
|
2023-11-23 16:13:21 +03:00
|
|
|
return promptService.get_prompt_by_id(prompt_id)
|
2023-08-03 11:37:13 +03:00
|
|
|
|
|
|
|
|
|
|
|
@prompt_router.put(
|
|
|
|
"/prompts/{prompt_id}", dependencies=[Depends(AuthBearer())], tags=["Prompt"]
|
|
|
|
)
|
|
|
|
async def update_prompt(
|
|
|
|
prompt_id: UUID, prompt: PromptUpdatableProperties
|
|
|
|
) -> Prompt | None:
|
|
|
|
"""
|
|
|
|
Update a prompt by its id
|
|
|
|
"""
|
|
|
|
|
2023-11-23 16:13:21 +03:00
|
|
|
return promptService.update_prompt_by_id(prompt_id, prompt)
|
2023-08-03 11:37:13 +03:00
|
|
|
|
|
|
|
|
|
|
|
@prompt_router.post("/prompts", dependencies=[Depends(AuthBearer())], tags=["Prompt"])
|
|
|
|
async def create_prompt_route(prompt: CreatePromptProperties) -> Prompt | None:
|
|
|
|
"""
|
|
|
|
Create a prompt by its id
|
|
|
|
"""
|
|
|
|
|
2023-11-23 16:13:21 +03:00
|
|
|
return promptService.create_prompt(prompt)
|