feat: add backend rule group and permission support
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""提示词模板控制器。"""
|
||||
|
||||
from fastapi import Depends, Query
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from fastapi_common.fastapi_common_security.security import verify_access_token
|
||||
from fastapi_common.fastapi_common_web.controller import BaseController
|
||||
from fastapi_modules.fastapi_leaudit.domian.Dto.promptTemplateDto import PromptTemplateCreateDTO, PromptTemplateUpdateDTO
|
||||
from fastapi_modules.fastapi_leaudit.services.promptTemplateService import IPromptTemplateService
|
||||
from fastapi_modules.fastapi_leaudit.services.impl.promptTemplateServiceImpl import PromptTemplateServiceImpl
|
||||
|
||||
|
||||
class PromptTemplateController(BaseController):
|
||||
def __init__(self):
|
||||
super().__init__(prefix='/v3/prompt-templates', tags=['提示词模板'])
|
||||
self.Service: IPromptTemplateService = PromptTemplateServiceImpl()
|
||||
|
||||
@self.router.get('')
|
||||
async def ListPromptTemplates(
|
||||
search: str | None = Query(None, description='名称/编码搜索'),
|
||||
template_type: str | None = Query(None, description='模板类型,逗号分隔'),
|
||||
status: int | None = Query(None, description='状态'),
|
||||
page: int = Query(1, ge=1),
|
||||
page_size: int = Query(20, ge=1, le=500),
|
||||
payload: dict = Depends(verify_access_token),
|
||||
):
|
||||
_ = payload
|
||||
template_types = [item.strip() for item in str(template_type or '').split(',') if item.strip()]
|
||||
data = await self.Service.ListTemplates(search, template_types or None, status, page, page_size)
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': data.model_dump()})
|
||||
|
||||
@self.router.get('/types')
|
||||
async def GetPromptTemplateTypes(payload: dict = Depends(verify_access_token)):
|
||||
_ = payload
|
||||
data = await self.Service.GetTemplateTypes()
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': data.model_dump()})
|
||||
|
||||
@self.router.get('/{TemplateId}')
|
||||
async def GetPromptTemplate(TemplateId: int, payload: dict = Depends(verify_access_token)):
|
||||
_ = payload
|
||||
data = await self.Service.GetTemplate(TemplateId)
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': data.model_dump()})
|
||||
|
||||
@self.router.post('')
|
||||
async def CreatePromptTemplate(body: PromptTemplateCreateDTO, payload: dict = Depends(verify_access_token)):
|
||||
_ = payload
|
||||
data = await self.Service.CreateTemplate(body)
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': data.model_dump()})
|
||||
|
||||
@self.router.put('/{TemplateId}')
|
||||
async def UpdatePromptTemplate(TemplateId: int, body: PromptTemplateUpdateDTO, payload: dict = Depends(verify_access_token)):
|
||||
_ = payload
|
||||
data = await self.Service.UpdateTemplate(TemplateId, body)
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': data.model_dump()})
|
||||
|
||||
@self.router.delete('/{TemplateId}')
|
||||
async def DeletePromptTemplate(TemplateId: int, payload: dict = Depends(verify_access_token)):
|
||||
_ = payload
|
||||
await self.Service.DeleteTemplate(TemplateId)
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': True})
|
||||
|
||||
@self.router.post('/{TemplateId}/duplicate')
|
||||
async def DuplicatePromptTemplate(TemplateId: int, new_code: str | None = Query(None), payload: dict = Depends(verify_access_token)):
|
||||
_ = payload
|
||||
data = await self.Service.DuplicateTemplate(TemplateId, new_code)
|
||||
return JSONResponse(status_code=200, content={'code': 200, 'message': 'ok', 'data': data.model_dump()})
|
||||
Reference in New Issue
Block a user