60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from typing import Any
|
|
|
|
import pymongo
|
|
from fastapi import APIRouter, Depends, Request
|
|
from motor.motor_asyncio import AsyncIOMotorDatabase
|
|
import crud, schemas
|
|
|
|
from db import get_database
|
|
from api import deps
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/create")
|
|
async def create(
|
|
request: Request,
|
|
data_in: schemas.ReportCreate,
|
|
game: str,
|
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
"""新建报表"""
|
|
try:
|
|
await crud.report.create(db, data_in, user_id=request.user.id)
|
|
except pymongo.errors.DuplicateKeyError:
|
|
return schemas.Msg(code=-1, msg='error', data='报表已存在')
|
|
|
|
return schemas.Msg(code=0, msg='ok', data='创建成功')
|
|
|
|
|
|
@router.post("/read_report")
|
|
async def read_report(
|
|
request: Request,
|
|
data_in: schemas.ReportRead,
|
|
game: str,
|
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> Any:
|
|
"""获取已建报表"""
|
|
|
|
data = await crud.report.read_report(db, user_id=request.user.id, project_id=data_in.project_id)
|
|
return schemas.Msg(code=0, msg='ok', data=data)
|
|
|
|
|
|
@router.post("/delete")
|
|
async def delete(
|
|
request: Request,
|
|
data_in: schemas.ReportDelete,
|
|
game: str,
|
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
"""删除报表"""
|
|
# 删除Report 自己创建的
|
|
del_report = await crud.report.delete(db, _id=data_in.id, user_id=current_user.id)
|
|
|
|
if del_report.deleted_count == 0:
|
|
return schemas.Msg(code=-1, msg='error', data='删除失败')
|
|
return schemas.Msg(code=0, msg='ok', data='删除成功')
|