Spaces:
Build error
Build error
| from typing import Any, List | |
| from fastapi import APIRouter, Depends, HTTPException | |
| from sqlalchemy.orm import Session | |
| from starlette.responses import Response | |
| from core.cache import cache | |
| from cruds.program import crud_program | |
| from cruds.group import crud_group | |
| from schemas import Program, ProgramCreate, ProgramUpdate, GroupCreate | |
| from schemas import program | |
| from utils import deps | |
| router = APIRouter() | |
| async def get_programs( | |
| db: Session = Depends(deps.get_db), | |
| skip: int = 0, | |
| limit: int = 500, | |
| ) -> Any: | |
| programs = crud_program.get_multi(db, skip=skip, limit=limit) | |
| return programs | |
| async def create_program( | |
| db: Session = Depends(deps.get_db), | |
| user=Depends(deps.get_current_admin_or_above), | |
| *, | |
| program_in: ProgramCreate, | |
| ) -> Any: | |
| program = crud_program.create(db, obj_in=Program(**program_in.dict())) | |
| for sem_iter in range(program_in.max_sems): | |
| group = GroupCreate( | |
| program_id=program.id, | |
| sem=sem_iter + 1, | |
| ) | |
| print(group.dict()) | |
| crud_group.create(db=db, obj_in=group) | |
| return program | |
| async def get_program( | |
| db: Session = Depends(deps.get_db), | |
| user=Depends(deps.get_current_active_user), | |
| *, | |
| program_id: int, | |
| ) -> Any: | |
| program = crud_program.get(db, program_id) | |
| return program | |
| def update_program( | |
| db: Session = Depends(deps.get_db), | |
| *, | |
| program_id: int, | |
| obj_in: ProgramUpdate, | |
| current_user=Depends(deps.get_current_admin_or_above), | |
| ) -> Any: | |
| department = crud_program.get(db, program_id) | |
| crud_program.update(db, db_obj=department, obj_in=obj_in) | |
| return {"status": "success"} | |
| async def delete_program( | |
| db: Session = Depends(deps.get_db), | |
| user=Depends(deps.get_current_admin_or_above), | |
| *, | |
| program_id: int, | |
| ): | |
| crud_program.remove(db=db, id=program_id) | |
| return {"msg": "success"} | |