forked from ScoDoc/ScoDoc
API: traitement des paramètres erronés (404) + test
This commit is contained in:
parent
1accb5025a
commit
bba7906493
@ -5,7 +5,7 @@ from flask import jsonify
|
||||
from app.api import bp
|
||||
from app.api.errors import error_response
|
||||
from app.api.auth import token_auth, token_permission_required
|
||||
from app.api.tools import get_etu_from_etudid_or_nip_or_ine
|
||||
from app.api.tools import get_etud_from_etudid_or_nip_or_ine
|
||||
from app.scodoc import notesdb as ndb
|
||||
|
||||
from app.scodoc import sco_abs
|
||||
@ -50,12 +50,11 @@ def absences(etudid: int = None, nip: int = None, ine: int = None):
|
||||
"""
|
||||
if etudid is None:
|
||||
# Récupération de l'étudiant
|
||||
etud = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
etud = get_etud_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
if etud is None:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
404,
|
||||
message="id de l'étudiant (etudid, nip, ine) inconnu",
|
||||
)
|
||||
etudid = etud.etudid
|
||||
|
||||
@ -103,16 +102,13 @@ def absences_just(etudid: int = None, nip: int = None, ine: int = None):
|
||||
]
|
||||
"""
|
||||
if etudid is None:
|
||||
# Récupération de l'étudiant
|
||||
try:
|
||||
etu = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
etudid = etu.etudid
|
||||
except AttributeError:
|
||||
etud = get_etud_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
if etud is None:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
404,
|
||||
message="id de l'étudiant (etudid, nip, ine) inconnu",
|
||||
)
|
||||
etudid = etud.etudid
|
||||
|
||||
# Récupération des absences justifiées de l'étudiant
|
||||
abs_just = [
|
||||
@ -149,7 +145,7 @@ def absences_just(etudid: int = None, nip: int = None, ine: int = None):
|
||||
# members = get_group_members(group_id)
|
||||
# except ValueError:
|
||||
# return error_response(
|
||||
# 409, message="La requête ne peut être traitée en l’état actuel"
|
||||
# 404, message="La requête ne peut être traitée en l’état actuel"
|
||||
# )
|
||||
|
||||
# data = []
|
||||
|
@ -7,7 +7,7 @@ from app import models
|
||||
from app.api import bp
|
||||
from app.api.errors import error_response
|
||||
from app.api.auth import token_auth, token_permission_required
|
||||
from app.api.tools import get_etu_from_etudid_or_nip_or_ine
|
||||
from app.api.tools import get_etud_from_etudid_or_nip_or_ine
|
||||
from app.models import FormSemestreInscription, FormSemestre, Identite
|
||||
from app.scodoc import sco_bulletins
|
||||
from app.scodoc import sco_groups
|
||||
@ -96,8 +96,12 @@ def etudiant(etudid: int = None, nip: int = None, ine: int = None):
|
||||
}
|
||||
"""
|
||||
# Récupération de l'étudiant
|
||||
etud = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
|
||||
etud = get_etud_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
if etud is None:
|
||||
return error_response(
|
||||
404,
|
||||
message="id de l'étudiant (etudid, nip, ine) inconnu",
|
||||
)
|
||||
# Mise en forme des données
|
||||
data = etud.to_dict_bul(include_urls=False)
|
||||
|
||||
@ -150,7 +154,12 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
|
||||
]
|
||||
"""
|
||||
# Récupération de l'étudiant
|
||||
etud = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
etud = get_etud_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
if etud is None:
|
||||
return error_response(
|
||||
404,
|
||||
message="id de l'étudiant (etudid, nip, ine) inconnu",
|
||||
)
|
||||
|
||||
formsemestres = models.FormSemestre.query.filter(
|
||||
models.FormSemestreInscription.etudid == etud.id,
|
||||
@ -383,17 +392,15 @@ def etudiant_bulletin_semestre(
|
||||
|
||||
app.set_sco_dept(dept.acronym)
|
||||
|
||||
# Récupération de l'étudiant
|
||||
try:
|
||||
etu = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
except AttributeError:
|
||||
etud = get_etud_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
if etud is None:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
404,
|
||||
message="id de l'étudiant (etudid, nip, ine) inconnu",
|
||||
)
|
||||
return sco_bulletins.get_formsemestre_bulletin_etud_json(
|
||||
formsemestre, etud, version
|
||||
)
|
||||
|
||||
return sco_bulletins.get_formsemestre_bulletin_etud_json(formsemestre, etu, version)
|
||||
|
||||
|
||||
@bp.route(
|
||||
@ -446,12 +453,11 @@ def etudiant_groups(
|
||||
]
|
||||
"""
|
||||
if etudid is None:
|
||||
etud = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
etud = get_etud_from_etudid_or_nip_or_ine(etudid, nip, ine)
|
||||
if etud is None:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
404,
|
||||
message="id de l'étudiant (etudid, nip, ine) inconnu",
|
||||
)
|
||||
etudid = etud.etudid
|
||||
|
||||
|
@ -99,7 +99,7 @@ def evaluation_notes(evaluation_id: int):
|
||||
data = do_evaluation_get_all_notes(evaluation_id)
|
||||
except AttributeError: # ???
|
||||
return error_response(
|
||||
409,
|
||||
404,
|
||||
message="La requête ne peut être traitée en l’état actuel.",
|
||||
)
|
||||
|
||||
|
@ -176,11 +176,7 @@ def formation_export_by_formation_id(formation_id: int, export_ids=False):
|
||||
# Utilisation de la fonction formation_export
|
||||
data = sco_formations.formation_export(formation_id, export_ids)
|
||||
except ValueError:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel. \n"
|
||||
"Veillez vérifier la conformité du 'formation_id'",
|
||||
)
|
||||
return error_response(500, message="Erreur inconnue")
|
||||
|
||||
return jsonify(data)
|
||||
|
||||
|
@ -113,11 +113,7 @@ def etud_in_group(group_id: int, etat=None):
|
||||
data = get_group_members(group_id, etat)
|
||||
|
||||
if len(data) == 0:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel. \n"
|
||||
"Aucun groupe ne correspond au 'group_id' renseigné",
|
||||
)
|
||||
return error_response(404, message="group_id inconnu")
|
||||
|
||||
return jsonify(data)
|
||||
|
||||
@ -146,8 +142,4 @@ def set_groups(
|
||||
setGroups(partition_id, groups_lists, groups_to_create, groups_to_delete)
|
||||
return error_response(200, message="Groups set")
|
||||
except ValueError:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel. \n"
|
||||
"Veillez vérifier la conformité des éléments passé en paramètres",
|
||||
)
|
||||
return error_response(404, message="Erreur")
|
||||
|
@ -1,15 +1,17 @@
|
||||
from app import models
|
||||
|
||||
|
||||
def get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine):
|
||||
def get_etud_from_etudid_or_nip_or_ine(
|
||||
etudid=None, nip=None, ine=None
|
||||
) -> models.Identite:
|
||||
"""
|
||||
Fonction qui retourne un etudiant en fonction de l'etudid, code nip et code ine rentré en paramètres
|
||||
etudiant en fonction de l'etudid, code nip et code ine rentré en paramètres
|
||||
|
||||
etudid : None ou un int etudid
|
||||
nip : None ou un int code_nip
|
||||
ine : None ou un int code_ine
|
||||
|
||||
Exemple de résultat: <Itendite>
|
||||
Return None si étudiant inexistant.
|
||||
"""
|
||||
if etudid is None:
|
||||
if nip is None: # si ine
|
||||
|
@ -180,6 +180,14 @@ def test_etudiant_bulletin_semestre(api_headers):
|
||||
bul = r.json()
|
||||
assert len(bul) == 13 # HARDCODED
|
||||
|
||||
### --- Test étudiant inexistant
|
||||
r = requests.get(
|
||||
API_URL + "/etudiant/ine/189919919119191/formsemestre/1/bulletin",
|
||||
headers=api_headers,
|
||||
verify=CHECK_CERTIFICATE,
|
||||
)
|
||||
assert r.status_code == 404
|
||||
|
||||
|
||||
def test_etudiant_groups(api_headers):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user