forked from ScoDoc/ScoDoc
API: accès aux départements
This commit is contained in:
parent
847e275b26
commit
8330ce66ca
@ -21,6 +21,14 @@ def get_departement(dept_ident: str) -> Departement:
|
|||||||
return Departement.query.get_or_404(dept_id)
|
return Departement.query.get_or_404(dept_id)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/departements", methods=["GET"])
|
||||||
|
@token_auth.login_required
|
||||||
|
@token_permission_required(Permission.APIView)
|
||||||
|
def departements():
|
||||||
|
"""Liste les départements"""
|
||||||
|
return jsonify([dept.to_dict() for dept in Departement.query])
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departements_ids", methods=["GET"])
|
@bp.route("/departements_ids", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
@ -29,12 +37,12 @@ def departements_ids():
|
|||||||
return jsonify([dept.id for dept in Departement.query])
|
return jsonify([dept.id for dept in Departement.query])
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departement/<string:dept_ident>", methods=["GET"])
|
@bp.route("/departement/<string:acronym>", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def departement(dept_ident: str):
|
def departement(acronym: str):
|
||||||
"""
|
"""
|
||||||
Info sur un département. Accès par id ou acronyme.
|
Info sur un département. Accès par acronyme.
|
||||||
|
|
||||||
Exemple de résultat :
|
Exemple de résultat :
|
||||||
{
|
{
|
||||||
@ -45,27 +53,29 @@ def departement(dept_ident: str):
|
|||||||
"date_creation": "Fri, 15 Apr 2022 12:19:28 GMT"
|
"date_creation": "Fri, 15 Apr 2022 12:19:28 GMT"
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
dept = get_departement(dept_ident)
|
dept = Departement.query.filter_by(acronym=acronym).first_or_404()
|
||||||
return jsonify(dept.to_dict())
|
return jsonify(dept.to_dict())
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departements", methods=["GET"])
|
@bp.route("/departement/id/<int:dept_id>", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def departements():
|
def departement_by_id(dept_id: int):
|
||||||
"""Liste les départements"""
|
"""
|
||||||
return jsonify([dept.to_dict() for dept in Departement.query])
|
Info sur un département. Accès par id.
|
||||||
|
"""
|
||||||
|
dept = Departement.query.get_or_404(dept_id)
|
||||||
|
return jsonify(dept.to_dict())
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departement/<string:dept_ident>/etudiants", methods=["GET"])
|
@bp.route("/departement/<string:acronym>/etudiants", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def list_etudiants(dept_ident: str):
|
def dept_etudiants(acronym: str):
|
||||||
"""
|
"""
|
||||||
Retourne la liste des étudiants d'un département
|
Retourne la liste des étudiants d'un département
|
||||||
|
|
||||||
dept: l'acronym d'un département
|
acronym: l'acronyme d'un département
|
||||||
formsemestre_id: l'id d'un formesemestre
|
|
||||||
|
|
||||||
Exemple de résultat :
|
Exemple de résultat :
|
||||||
[
|
[
|
||||||
@ -83,30 +93,45 @@ def list_etudiants(dept_ident: str):
|
|||||||
...
|
...
|
||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
# Le département, spécifié par un id ou un acronyme
|
dept = Departement.query.filter_by(acronym=acronym).first_or_404()
|
||||||
dept = get_departement(dept_ident)
|
|
||||||
|
|
||||||
return jsonify([etud.to_dict_short() for etud in dept.etudiants])
|
return jsonify([etud.to_dict_short() for etud in dept.etudiants])
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departement/<string:dept_ident>/formsemestres_ids", methods=["GET"])
|
@bp.route("/departement/id/<int:dept_id>/etudiants", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def formsemestres_ids(dept_ident: str):
|
def dept_etudiants_by_id(dept_id: int):
|
||||||
|
"""
|
||||||
|
Retourne la liste des étudiants d'un département d'id donné.
|
||||||
|
"""
|
||||||
|
dept = Departement.query.get_or_404(dept_id)
|
||||||
|
return jsonify([etud.to_dict_short() for etud in dept.etudiants])
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/departement/<string:acronym>/formsemestres_ids", methods=["GET"])
|
||||||
|
@token_auth.login_required
|
||||||
|
@token_permission_required(Permission.APIView)
|
||||||
|
def dept_formsemestres_ids(acronym: str):
|
||||||
"""liste des ids formsemestre du département"""
|
"""liste des ids formsemestre du département"""
|
||||||
# Le département, spécifié par un id ou un acronyme
|
dept = Departement.query.filter_by(acronym=acronym).first_or_404()
|
||||||
dept = get_departement(dept_ident)
|
|
||||||
return jsonify([formsemestre.id for formsemestre in dept.formsemestres])
|
return jsonify([formsemestre.id for formsemestre in dept.formsemestres])
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departement/<string:dept_ident>/formsemestres_courants", methods=["GET"])
|
@bp.route("/departement/id/<int:dept_id>/formsemestres_ids", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def liste_semestres_courant(dept_ident: str):
|
def dept_formsemestres_ids_by_id(dept_id: int):
|
||||||
"""
|
"""liste des ids formsemestre du département"""
|
||||||
Liste des semestres actifs d'un départements donné
|
dept = Departement.query.get_or_404(dept_id)
|
||||||
|
return jsonify([formsemestre.id for formsemestre in dept.formsemestres])
|
||||||
|
|
||||||
dept: l'acronym d'un département
|
|
||||||
|
@bp.route("/departement/<string:acronym>/formsemestres_courants", methods=["GET"])
|
||||||
|
@token_auth.login_required
|
||||||
|
@token_permission_required(Permission.APIView)
|
||||||
|
def dept_formsemestres_courants(acronym: str):
|
||||||
|
"""
|
||||||
|
Liste des semestres actifs d'un département d'acronyme donné
|
||||||
|
|
||||||
Exemple de résultat :
|
Exemple de résultat :
|
||||||
[
|
[
|
||||||
@ -144,7 +169,27 @@ def liste_semestres_courant(dept_ident: str):
|
|||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
# Le département, spécifié par un id ou un acronyme
|
# Le département, spécifié par un id ou un acronyme
|
||||||
dept = get_departement(dept_ident)
|
dept = Departement.query.filter_by(acronym=acronym).first_or_404()
|
||||||
|
|
||||||
|
# Les semestres en cours de ce département
|
||||||
|
formsemestres = models.FormSemestre.query.filter(
|
||||||
|
FormSemestre.dept_id == dept.id,
|
||||||
|
FormSemestre.date_debut <= app.db.func.now(),
|
||||||
|
FormSemestre.date_fin >= app.db.func.now(),
|
||||||
|
)
|
||||||
|
|
||||||
|
return jsonify([d.to_dict(convert_parcours=True) for d in formsemestres])
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/departement/id/<int:dept_id>/formsemestres_courants", methods=["GET"])
|
||||||
|
@token_auth.login_required
|
||||||
|
@token_permission_required(Permission.APIView)
|
||||||
|
def dept_formsemestres_courants_by_id(dept_id: int):
|
||||||
|
"""
|
||||||
|
Liste des semestres actifs d'un département d'id donné
|
||||||
|
"""
|
||||||
|
# Le département, spécifié par un id ou un acronyme
|
||||||
|
dept = Departement.query.get_or_404(dept_id)
|
||||||
|
|
||||||
# Les semestres en cours de ce département
|
# Les semestres en cours de ce département
|
||||||
formsemestres = models.FormSemestre.query.filter(
|
formsemestres = models.FormSemestre.query.filter(
|
||||||
|
Loading…
Reference in New Issue
Block a user