47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
from datetime import timedelta
|
|
from typing import Any, List
|
|
|
|
from fastapi import APIRouter, Body, Depends, HTTPException, Request
|
|
from sqlalchemy.orm import Session
|
|
|
|
import crud, models, schemas
|
|
from api import deps
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/", response_model=List[schemas.Project])
|
|
def read_project(db: Session = Depends(deps.get_db),
|
|
current_user: models.User = Depends(deps.get_current_active_user)
|
|
) -> Any:
|
|
my_project = crud.project.get_my_project(db=db, user_id=current_user.id)
|
|
|
|
return my_project
|
|
|
|
|
|
@router.post("/create-project", response_model=schemas.Project)
|
|
def create_project(project_in: schemas.ProjectCreate, db: Session = Depends(deps.get_db),
|
|
current_user: models.User = Depends(deps.get_current_active_superuser)
|
|
) -> Any:
|
|
project = crud.project.create_with_project(db=db, obj_in=project_in, user_id=current_user.id)
|
|
# 我的看板 新建 未分组 和 共享给我的 文件夹
|
|
unknown_folder = schemas.FolderCreate(
|
|
user_id=current_user.id,
|
|
name='未分组的'
|
|
)
|
|
share_folder = schemas.FolderCreate(
|
|
user_id=current_user.id,
|
|
name='共享给我的'
|
|
)
|
|
folder1 = crud.folder.create_with_folder(db=db, obj_in=unknown_folder, user_id=current_user.id, )
|
|
folder2 = crud.folder.create_with_folder(db=db, obj_in=share_folder, user_id=current_user.id)
|
|
|
|
# 拥有这俩个文件夹权限
|
|
authority1 = schemas.AuthorityCreate(project_id=project.id, authority='rw', folder_id=folder1.id)
|
|
authority2 = schemas.AuthorityCreate(project_id=project.id, authority='rw', folder_id=folder2.id)
|
|
|
|
crud.authority.create_with_authority(db=db, obj_in=authority1, user_id=current_user.id)
|
|
crud.authority.create_with_authority(db=db, obj_in=authority2, user_id=current_user.id)
|
|
|
|
return project
|