87 lines
2.7 KiB
Python
87 lines
2.7 KiB
Python
from app.model.crud import project_type_crud as ptc
|
|
from app.model.crud import project_label_crud as plc
|
|
from app.model.crud import project_info_crud as pic
|
|
from app.service import project_service as ps
|
|
from app.model.schemas.project_info_schemas import ProjectInfoIn, ProjectInfoPager
|
|
from app.model.schemas.project_label_schemas import ProjectLabel
|
|
from app.db.db_session import get_db
|
|
from app.common.jwt_check import get_user_id
|
|
from app.common import reponse_code as rc
|
|
|
|
from fastapi import APIRouter, Depends, Request
|
|
from sqlalchemy.orm import Session
|
|
|
|
"""项目管理API"""
|
|
project = APIRouter()
|
|
|
|
|
|
@project.get("/types")
|
|
def get_type_list(session: Session = Depends(get_db)):
|
|
"""获取项目类别"""
|
|
type_list = ptc.get_list(session)
|
|
return rc.response_success(data=type_list)
|
|
|
|
|
|
@project.post("/list")
|
|
def project_pager(info: ProjectInfoPager, session: Session = Depends(get_db)):
|
|
pager = pic.get_project_pager(info, session)
|
|
return rc.response_success_pager(pager)
|
|
|
|
|
|
@project.post("/add")
|
|
def add_project(request: Request, info: ProjectInfoIn, session: Session = Depends(get_db)):
|
|
"""新建项目"""
|
|
if pic.check_project_name(info.project_name, session):
|
|
return rc.response_error("已经存在相同名称的项目")
|
|
user_id = get_user_id(request)
|
|
ps.add_project(info, session, user_id)
|
|
return rc.response_success(msg="新建成功")
|
|
|
|
|
|
@project.post("/add_label")
|
|
def add_label(label: ProjectLabel, session: Session = Depends(get_db)):
|
|
"""
|
|
新增标签
|
|
:param label:
|
|
:param session:
|
|
:return:
|
|
"""
|
|
if plc.check_label_name(label.project_id, label.label_name, session):
|
|
return rc.response_error("标签名称已经存在,不能重复")
|
|
label_save = ProjectLabel(**label.dict())
|
|
plc.add_label(label_save, session)
|
|
return rc.response_success(msg="保存成功")
|
|
|
|
|
|
@project.post("/up_label")
|
|
def up_label(label: ProjectLabel, session: Session = Depends(get_db)):
|
|
"""
|
|
修改标签
|
|
:param label:
|
|
:param session:
|
|
:return:
|
|
"""
|
|
if plc.check_label_name(label.project_id, label.label_name, session, label.id):
|
|
return rc.response_error("修改的标签名称已经存在,不能重复")
|
|
label_save = ProjectLabel(**label.dict())
|
|
plc.update_label(label_save, session)
|
|
return rc.response_success(msg="修改成功")
|
|
|
|
|
|
@project.post("/del_label")
|
|
def del_label(label: ProjectLabel, session: Session = Depends(get_db)):
|
|
"""
|
|
删除标签
|
|
:param label:
|
|
:param session:
|
|
:return:
|
|
"""
|
|
row_del = plc.update_label(label.id, session)
|
|
if row_del > 0:
|
|
return rc.response_success(msg="删除成功")
|
|
else:
|
|
return rc.response_error("删除失败")
|
|
|
|
|
|
|