diff --git a/app/api/formations.py b/app/api/formations.py index c9c80d7d3c..b5fb0ecbc3 100644 --- a/app/api/formations.py +++ b/app/api/formations.py @@ -4,9 +4,8 @@ from flask import jsonify 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.auth import token_permission_required from app.scodoc.sco_formations import formation_export -from app.scodoc.sco_moduleimpl import moduleimpl_list from app.scodoc.sco_permissions import Permission @@ -34,7 +33,7 @@ def formations_by_id(formation_id: int): formation_id : l'id d'une formation """ # Récupération de la formation - forma = models.Formation.query.filter_by(id=formation_id).first() + forma = models.Formation.query.filter_by(id=formation_id).first_or_404() # Mise en forme des données data = [d.to_dict() for d in forma] @@ -72,12 +71,14 @@ def formsemestre_apo(etape_apo: int): etape_apo : l'id d'une étape apogée """ # Récupération des formsemestres - apos = models.FormSemestreEtape.query.filter_by(etape_apo=etape_apo).all() + apos = models.FormSemestreEtape.query.filter_by(etape_apo=etape_apo) data = [] # Filtre les formsemestres correspondant + mise en forme des données for apo in apos: - formsem = models.FormSemestre.query.filter_by(id=apo["formsemestre_id"]).first() + formsem = models.FormSemestre.query.filter_by( + id=apo["formsemestre_id"] + ).first_or_404() data.append(formsem.to_dict()) return jsonify(data) @@ -93,37 +94,32 @@ def moduleimpls(moduleimpl_id: int): moduleimpl_id : l'id d'un moduleimpl """ # Récupération des tous les moduleimpl - list_moduleimpls = models.ModuleImpl.query.filter_by(id=moduleimpl_id).all() + list_moduleimpls = models.ModuleImpl.query.filter_by(id=moduleimpl_id) # Mise en forme des données - data = list_moduleimpls[0].to_dict() + data = [moduleimpl.to_dict() for moduleimpl in list_moduleimpls] return jsonify(data) @bp.route( - "/formations/moduleimpl//formsemestre/", + "/formations/moduleimpl/formsemestre//liste", methods=["GET"], -) +) # XXX TODO penser à changer la route sur la doc @token_permission_required(Permission.APIView) -def moduleimpls_sem(moduleimpl_id: int, formsemestre_id: int): +def moduleimpls_sem(formsemestre_id: int): """ Retourne la liste des moduleimpl d'un semestre moduleimpl_id : l'id d'un moduleimpl formsemestre_id : l'id d'un formsemestre """ - # Fonction utilisée : app.scodoc.sco_moduleimpl.moduleimpl_list() + formsemestre = models.FormSemestre.query.filter_by( + id=formsemestre_id + ).first_or_404() - # Utilisation de la fonction moduleimpl_list - data = moduleimpl_list(moduleimpl_id, formsemestre_id) + moduleimpls = formsemestre.modimpls_sorted - if len(data) == 0: - return error_response( - 409, - message="La requête ne peut être traitée en l’état actuel. \n" - "Aucun moduleimpl ne correspond au 'moduleimpl_id' ou " - "'formsemestre_id' renseigné", - ) + data = [moduleimpl.to_dict() for moduleimpl in moduleimpls] return jsonify(data)