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