Coverage for toardb/auth_user/auth_user.py: 48%

21 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-11-03 20:32 +0000

1from fastapi import APIRouter, Depends, HTTPException, Request, Query 

2from typing import List 

3from sqlalchemy.orm import Session 

4 

5from . import crud, schemas 

6from toardb.utils.database import get_db 

7 

8router = APIRouter() 

9 

10#get all metadata of one person 

11@router.get('/auth_user/') 

12def get_eduperson(request: Request, eduperson_unique_id: str = None, DoIncr: str = "0,0", db: Session = Depends(get_db)): 

13 try: 

14 parts = [int(x) for x in DoIncr.split(",")] 

15 except ValueError: 

16 raise HTTPException(status_code=400, detail="Parameter 'DoIncr' must contain two integers, separated by a comma.") 

17 

18 if len(parts) != 2: 

19 raise HTTPException(status_code=400, detail="Parameter 'DoIncr' must contain exactly two values.") 

20 db_person = crud.get_eduperson_and_roles(request, db, eduperson_unique_id=eduperson_unique_id, DoIncr=parts) 

21 if db_person is None: 

22 raise HTTPException(status_code=404, detail="Eduperson not found.") 

23 return db_person 

24 

25 

26#determine increments (number of time series/gridded products of a given request) 

27@router.get('/auth_user/increments/') 

28def get_increments(request: Request, db: Session = Depends(get_db), user_role=None): 

29 return crud.determine_increments(request, db, user_role=user_role)