xbackend/api/api_v1/endpoints/folder.py
2021-05-17 18:44:34 +08:00

41 lines
1.4 KiB
Python

import pymongo
from fastapi import APIRouter, Depends
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(
data_in: schemas.FolderCreate,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""创建文件夹"""
try:
await crud.folder.create(db, data_in, user_id=current_user.id)
except pymongo.errors.DuplicateKeyError:
return schemas.Msg(code=-1, msg='文件夹已存在', data='文件夹已存在')
return schemas.Msg(code=0, msg='ok', data='创建成功')
@router.post("/delete")
async def delete(
data_in: schemas.FolderDelete,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""删除文件夹"""
# 删除文件夹 自己创建的
del_folder = await crud.folder.delete(db, _id=data_in.id, user_id=current_user.id)
# 删除文件夹下的 dashboard
del_dashboard = await crud.dashboard.delete(db, pid=data_in.id)
if del_folder.deleted_count == 0:
return schemas.Msg(code=-1, msg='error', data='删除失败')
return schemas.Msg(code=0, msg='ok', data='删除成功')