RamEx-Flow / backend /app /api /v1 /endpoints /projects.py
zdy10046's picture
add backend code
57528c5
Raw
History Blame Contribute Delete
1.25 kB
from fastapi import APIRouter, status
from app.core.errors import not_found
from app.schemas.common import StatusMessage
from app.schemas.project import ProjectCreate, ProjectCreateResponse, ProjectDetail, ProjectListItem
from app.services import project_service
router = APIRouter(prefix="/projects", tags=["projects"])
@router.get("/", response_model=list[ProjectListItem])
def list_projects() -> list[dict]:
return project_service.list_projects()
@router.post("/", response_model=ProjectCreateResponse, status_code=status.HTTP_201_CREATED)
def create_project(payload: ProjectCreate) -> dict:
return project_service.create_project(payload.name, payload.description)
@router.get("/{project_id}/", response_model=ProjectDetail)
def get_project(project_id: str) -> dict:
project = project_service.get_project(project_id)
if not project:
not_found("project_not_found", "项目不存在")
return project
@router.delete("/{project_id}/", response_model=StatusMessage)
def delete_project(project_id: str) -> dict:
deleted = project_service.delete_project(project_id)
if not deleted:
not_found("project_not_found", "项目不存在")
return {"status": "success", "message": "项目已成功删除"}