diff --git a/app/api/tools.py b/app/api/tools.py index e1903f2db..a8deedc2d 100644 --- a/app/api/tools.py +++ b/app/api/tools.py @@ -10,14 +10,14 @@ from flask_login import current_user from sqlalchemy import desc, or_ from app import models -from app.scodoc.sco_utils import json_error from app.models import Departement, Identite, Admission +from app.scodoc.sco_exceptions import ScoValueError from app.scodoc.sco_permissions import Permission def get_etud( etudid: int | None = None, nip: str | None = None, ine: str | None = None -) -> models.Identite: +) -> models.Identite | None: """ L'instance d'étudiant la plus récente en fonction de l'etudid, ou du code nip ou code ine. @@ -33,21 +33,16 @@ def get_etud( if etudid is not None: try: etudid = int(etudid) - except ValueError: - return json_error( - 404, - message="etudid invalide", - ) + except ValueError as exc: + raise ScoValueError("etudid invalide") from exc query: Identite = Identite.query.filter_by(id=etudid) elif nip is not None: query = Identite.query.filter_by(code_nip=nip) elif ine is not None: query = Identite.query.filter_by(code_ine=ine) else: - return json_error( - 404, - message="parametre manquant", - ) + raise ScoValueError("parametre manquant") + if None not in allowed_depts: # restreint aux départements autorisés: query = query.join(Departement).filter(