1
+ """Módulo de gestión de alumnos"""
2
+
3
+
1
4
from apiflask import APIBlueprint , abort
2
5
from apiflaskdemo .project .auth import login_required
3
6
from apiflaskdemo .project .models import db , Alumno
4
7
from apiflaskdemo .project .schemas import AlumnoSchema , AlumnoInSchema
5
- from marshmallow .exceptions import ValidationError
6
8
7
- abc_alumnos = APIBlueprint ('abc_alumno' , __name__ )
9
+ abc_alumnos = APIBlueprint ('Gestión de alumnos' , __name__ )
10
+
8
11
9
- @abc_alumnos .get ("/alumnos/ " )
12
+ @abc_alumnos .get ("/alumnos" )
10
13
@abc_alumnos .output (AlumnoSchema (many = True ))
11
- def vuelca_base ():
14
+ def vuelca_base () -> list [Alumno ]:
15
+ """Devuelve todos los alumnos"""
12
16
return Alumno .query .all ()
13
17
14
- @abc_alumnos .get ("/alumno/<int:cuenta>" )
18
+
19
+ @abc_alumnos .get ("/<int:cuenta>" )
15
20
@abc_alumnos .output (AlumnoSchema )
16
- def despliega_alumno (cuenta ):
21
+ def despliega_alumno (cuenta : int ) -> Alumno :
22
+ """Devuelve un alumno al ingresar su cuenta"""
17
23
return Alumno .query .get_or_404 (cuenta )
18
24
19
- @abc_alumnos .delete ("/alumno/<int:cuenta>" )
20
- @abc_alumnos .output (AlumnoSchema )
25
+
26
+ @abc_alumnos .delete ("/<int:cuenta>" )
27
+ @abc_alumnos .output ({}, 200 )
21
28
@login_required
22
- def elimina_alumno (cuenta ) :
29
+ def elimina_alumno (cuenta : int ) -> None :
23
30
alumno = Alumno .query .get_or_404 (cuenta )
24
31
db .session .delete (alumno )
25
32
db .session .commit ()
26
- return alumno
27
-
28
- @abc_alumnos .post ("/alumno/<int:cuenta>" )
33
+ return None
34
+
35
+
36
+ @abc_alumnos .post ("/<int:cuenta>" )
29
37
@abc_alumnos .output (AlumnoSchema , status_code = 201 )
30
38
@abc_alumnos .input (AlumnoInSchema )
31
- def crea_alumno (cuenta , data ) :
39
+ def crea_alumno (cuenta : int , data : dict ) -> Alumno :
32
40
if Alumno .query .filter_by (cuenta = cuenta ).first ():
33
41
abort (409 )
34
- else :
42
+ else :
35
43
data ["cuenta" ] = cuenta
36
44
alumno = Alumno (** AlumnoSchema ().load (data ))
37
45
db .session .add (alumno )
38
46
db .session .commit ()
39
47
return alumno , 201
40
48
41
- @abc_alumnos .put ("/alumno/<int:cuenta>" )
49
+
50
+ @abc_alumnos .put ("/<int:cuenta>" )
42
51
@abc_alumnos .output (AlumnoSchema )
43
52
@abc_alumnos .input (AlumnoInSchema )
44
- def sustituye_alumno (cuenta , data ) :
53
+ def sustituye_alumno (cuenta : int , data : dict ) -> Alumno :
45
54
alumno = Alumno .query .get_or_404 (cuenta )
46
55
db .session .delete (alumno )
47
56
data ["cuenta" ] = cuenta
48
57
nuevo_alumno = Alumno (** data )
49
58
db .session .add (nuevo_alumno )
50
59
db .session .commit ()
51
- return nuevo_alumno
60
+ return nuevo_alumno
0 commit comments