JairoDanielMT commited on
Commit
64289a0
verified
1 Parent(s): 66ffccc

Update routers/api.py

Browse files
Files changed (1) hide show
  1. routers/api.py +194 -194
routers/api.py CHANGED
@@ -1,194 +1,194 @@
1
- from fastapi import APIRouter, Depends, HTTPException
2
- from typing import List
3
- from sqlalchemy.orm import Session
4
- from models.schema import (
5
- Becas,
6
- BecasCreate,
7
- SearchBecas,
8
- Estudiantes,
9
- EstudiantesCreate,
10
- SearchEstudiantes,
11
- Profesores,
12
- ProfesoresCreate,
13
- SearchProfesores,
14
- Cursos,
15
- CursosCreate,
16
- SearchCursos,
17
- Horarios,
18
- HorariosCreate,
19
- SearchHorarios,
20
- Evaluaciones,
21
- EvaluacionesCreate,
22
- SearchEvaluaciones,
23
- )
24
- from database.database import Base, SessionLocal, engine
25
- from models.schema import (
26
- Becas as DBBecas,
27
- Estudiantes as DBEstudiantes,
28
- Profesores as DBProfesores,
29
- Cursos as DBCursos,
30
- Horarios as DBHorarios,
31
- Evaluaciones as DBEvaluaciones,
32
- )
33
-
34
- router = APIRouter(
35
- prefix="/api",
36
- tags=["Academia_Stephen_Hawking_API"],
37
- responses={404: {"description": "No encontrado"}},
38
- )
39
-
40
- # Inicializar la base de datos
41
- Base.metadata.create_all(bind=engine)
42
-
43
-
44
- # Funci贸n auxiliar para obtener una sesi贸n de la base de datos
45
- def get_db():
46
- db = SessionLocal()
47
- try:
48
- yield db
49
- finally:
50
- db.close()
51
-
52
-
53
- # Becas
54
- @router.get("/becas/", response_model=List[Becas])
55
- def get_becas(db: Session = Depends(get_db)):
56
- return db.query(DBBecas).all()
57
-
58
-
59
- @router.post("/becas/", response_model=Becas)
60
- def create_beca(beca: BecasCreate, db: Session = Depends(get_db)):
61
- db_beca = DBBecas(**beca.dict())
62
- db.add(db_beca)
63
- db.commit()
64
- db.refresh(db_beca)
65
- return db_beca
66
-
67
-
68
- @router.get("/becas/search/", response_model=List[Becas])
69
- def search_becas(beca: SearchBecas, db: Session = Depends(get_db)):
70
- query = db.query(DBBecas)
71
- if beca.nombre_beca:
72
- query = query.filter(DBBecas.Nombre_Beca.contains(beca.nombre_beca))
73
- return query.all()
74
-
75
-
76
- # Estudiantes
77
- @router.get("/estudiantes/", response_model=List[Estudiantes])
78
- def get_estudiantes(db: Session = Depends(get_db)):
79
- return db.query(DBEstudiantes).all()
80
-
81
-
82
- @router.post("/estudiantes/", response_model=Estudiantes)
83
- def create_estudiante(estudiante: EstudiantesCreate, db: Session = Depends(get_db)):
84
- db_estudiante = DBEstudiantes(**estudiante.dict())
85
- db.add(db_estudiante)
86
- db.commit()
87
- db.refresh(db_estudiante)
88
- return db_estudiante
89
-
90
-
91
- @router.get("/estudiantes/search/", response_model=List[Estudiantes])
92
- def search_estudiantes(estudiante: SearchEstudiantes, db: Session = Depends(get_db)):
93
- query = db.query(DBEstudiantes)
94
- if estudiante.nombre:
95
- query = query.filter(DBEstudiantes.Nombre.contains(estudiante.nombre))
96
- if estudiante.apellido:
97
- query = query.filter(DBEstudiantes.Apellido.contains(estudiante.apellido))
98
- return query.all()
99
-
100
-
101
- # Profesores
102
- @router.get("/profesores/", response_model=List[Profesores])
103
- def get_profesores(db: Session = Depends(get_db)):
104
- return db.query(DBProfesores).all()
105
-
106
-
107
- @router.post("/profesores/", response_model=Profesores)
108
- def create_profesor(profesor: ProfesoresCreate, db: Session = Depends(get_db)):
109
- db_profesor = DBProfesores(**profesor.dict())
110
- db.add(db_profesor)
111
- db.commit()
112
- db.refresh(db_profesor)
113
- return db_profesor
114
-
115
-
116
- @router.get("/profesores/search/", response_model=List[Profesores])
117
- def search_profesores(profesor: SearchProfesores, db: Session = Depends(get_db)):
118
- query = db.query(DBProfesores)
119
- if profesor.nombre:
120
- query = query.filter(DBProfesores.Nombre.contains(profesor.nombre))
121
- if profesor.apellido:
122
- query = query.filter(DBProfesores.Apellido.contains(profesor.apellido))
123
- return query.all()
124
-
125
-
126
- # Cursos
127
- @router.get("/cursos/", response_model=List[Cursos])
128
- def get_cursos(db: Session = Depends(get_db)):
129
- return db.query(DBCursos).all()
130
-
131
-
132
- @router.post("/cursos/", response_model=Cursos)
133
- def create_curso(curso: CursosCreate, db: Session = Depends(get_db)):
134
- db_curso = DBCursos(**curso.dict())
135
- db.add(db_curso)
136
- db.commit()
137
- db.refresh(db_curso)
138
- return db_curso
139
-
140
-
141
- @router.get("/cursos/search/", response_model=List[Cursos])
142
- def search_cursos(curso: SearchCursos, db: Session = Depends(get_db)):
143
- query = db.query(DBCursos)
144
- if curso.nombre_curso:
145
- query = query.filter(DBCursos.Nombre_Curso.contains(curso.nombre_curso))
146
- return query.all()
147
-
148
-
149
- # Horarios
150
- @router.get("/horarios/", response_model=List[Horarios])
151
- def get_horarios(db: Session = Depends(get_db)):
152
- return db.query(DBHorarios).all()
153
-
154
-
155
- @router.post("/horarios/", response_model=Horarios)
156
- def create_horario(horario: HorariosCreate, db: Session = Depends(get_db)):
157
- db_horario = DBHorarios(**horario.dict())
158
- db.add(db_horario)
159
- db.commit()
160
- db.refresh(db_horario)
161
- return db_horario
162
-
163
-
164
- @router.get("/horarios/search/", response_model=List[Horarios])
165
- def search_horarios(horario: SearchHorarios, db: Session = Depends(get_db)):
166
- query = db.query(DBHorarios)
167
- if horario.dia:
168
- query = query.filter(DBHorarios.D铆a.contains(horario.dia))
169
- return query.all()
170
-
171
-
172
- # Evaluaciones
173
- @router.get("/evaluaciones/", response_model=List[Evaluaciones])
174
- def get_evaluaciones(db: Session = Depends(get_db)):
175
- return db.query(DBEvaluaciones).all()
176
-
177
-
178
- @router.post("/evaluaciones/", response_model=Evaluaciones)
179
- def create_evaluacion(evaluacion: EvaluacionesCreate, db: Session = Depends(get_db)):
180
- db_evaluacion = DBEvaluaciones(**evaluacion.dict())
181
- db.add(db_evaluacion)
182
- db.commit()
183
- db.refresh(db_evaluacion)
184
- return db_evaluacion
185
-
186
-
187
- @router.get("/evaluaciones/search/", response_model=List[Evaluaciones])
188
- def search_evaluaciones(evaluacion: SearchEvaluaciones, db: Session = Depends(get_db)):
189
- query = db.query(DBEvaluaciones)
190
- if evaluacion.id_estudiante:
191
- query = query.filter(DBEvaluaciones.ID_Estudiante == evaluacion.id_estudiante)
192
- if evaluacion.id_curso:
193
- query = query.filter(DBEvaluaciones.ID_Curso == evaluacion.id_curso)
194
- return query.all()
 
1
+ from fastapi import APIRouter, Depends, HTTPException
2
+ from typing import List
3
+ from sqlalchemy.orm import Session
4
+ from models.schema import (
5
+ Becas,
6
+ BecasCreate,
7
+ SearchBecas,
8
+ Estudiantes,
9
+ EstudiantesCreate,
10
+ SearchEstudiantes,
11
+ Profesores,
12
+ ProfesoresCreate,
13
+ SearchProfesores,
14
+ Cursos,
15
+ CursosCreate,
16
+ SearchCursos,
17
+ Horarios,
18
+ HorariosCreate,
19
+ SearchHorarios,
20
+ Evaluaciones,
21
+ EvaluacionesCreate,
22
+ SearchEvaluaciones,
23
+ )
24
+ from database.database import Base, SessionLocal, engine
25
+ from models.model import (
26
+ Becas as DBBecas,
27
+ Estudiantes as DBEstudiantes,
28
+ Profesores as DBProfesores,
29
+ Cursos as DBCursos,
30
+ Horarios as DBHorarios,
31
+ Evaluaciones as DBEvaluaciones,
32
+ )
33
+
34
+ router = APIRouter(
35
+ prefix="/api",
36
+ tags=["Academia_Stephen_Hawking_API"],
37
+ responses={404: {"description": "No encontrado"}},
38
+ )
39
+
40
+ # Inicializar la base de datos
41
+ Base.metadata.create_all(bind=engine)
42
+
43
+
44
+ # Funci贸n auxiliar para obtener una sesi贸n de la base de datos
45
+ def get_db():
46
+ db = SessionLocal()
47
+ try:
48
+ yield db
49
+ finally:
50
+ db.close()
51
+
52
+
53
+ # Becas
54
+ @router.get("/becas/", response_model=List[Becas])
55
+ def get_becas(db: Session = Depends(get_db)):
56
+ return db.query(DBBecas).all()
57
+
58
+
59
+ @router.post("/becas/", response_model=Becas)
60
+ def create_beca(beca: BecasCreate, db: Session = Depends(get_db)):
61
+ db_beca = DBBecas(**beca.model_dump())
62
+ db.add(db_beca)
63
+ db.commit()
64
+ db.refresh(db_beca)
65
+ return db_beca
66
+
67
+
68
+ @router.get("/becas/search/", response_model=List[Becas])
69
+ def search_becas(beca: SearchBecas, db: Session = Depends(get_db)):
70
+ query = db.query(DBBecas)
71
+ if beca.nombre_beca:
72
+ query = query.filter(DBBecas.Nombre_Beca.contains(beca.nombre_beca))
73
+ return query.all()
74
+
75
+
76
+ # Estudiantes
77
+ @router.get("/estudiantes/", response_model=List[Estudiantes])
78
+ def get_estudiantes(db: Session = Depends(get_db)):
79
+ return db.query(DBEstudiantes).all()
80
+
81
+
82
+ @router.post("/estudiantes/", response_model=Estudiantes)
83
+ def create_estudiante(estudiante: EstudiantesCreate, db: Session = Depends(get_db)):
84
+ db_estudiante = DBEstudiantes(**estudiante.model_dump())
85
+ db.add(db_estudiante)
86
+ db.commit()
87
+ db.refresh(db_estudiante)
88
+ return db_estudiante
89
+
90
+
91
+ @router.get("/estudiantes/search/", response_model=List[Estudiantes])
92
+ def search_estudiantes(estudiante: SearchEstudiantes, db: Session = Depends(get_db)):
93
+ query = db.query(DBEstudiantes)
94
+ if estudiante.nombre:
95
+ query = query.filter(DBEstudiantes.Nombre.contains(estudiante.nombre))
96
+ if estudiante.apellido:
97
+ query = query.filter(DBEstudiantes.Apellido.contains(estudiante.apellido))
98
+ return query.all()
99
+
100
+
101
+ # Profesores
102
+ @router.get("/profesores/", response_model=List[Profesores])
103
+ def get_profesores(db: Session = Depends(get_db)):
104
+ return db.query(DBProfesores).all()
105
+
106
+
107
+ @router.post("/profesores/", response_model=Profesores)
108
+ def create_profesor(profesor: ProfesoresCreate, db: Session = Depends(get_db)):
109
+ db_profesor = DBProfesores(**profesor.model_dump())
110
+ db.add(db_profesor)
111
+ db.commit()
112
+ db.refresh(db_profesor)
113
+ return db_profesor
114
+
115
+
116
+ @router.get("/profesores/search/", response_model=List[Profesores])
117
+ def search_profesores(profesor: SearchProfesores, db: Session = Depends(get_db)):
118
+ query = db.query(DBProfesores)
119
+ if profesor.nombre:
120
+ query = query.filter(DBProfesores.Nombre.contains(profesor.nombre))
121
+ if profesor.apellido:
122
+ query = query.filter(DBProfesores.Apellido.contains(profesor.apellido))
123
+ return query.all()
124
+
125
+
126
+ # Cursos
127
+ @router.get("/cursos/", response_model=List[Cursos])
128
+ def get_cursos(db: Session = Depends(get_db)):
129
+ return db.query(DBCursos).all()
130
+
131
+
132
+ @router.post("/cursos/", response_model=Cursos)
133
+ def create_curso(curso: CursosCreate, db: Session = Depends(get_db)):
134
+ db_curso = DBCursos(**curso.model_dump())
135
+ db.add(db_curso)
136
+ db.commit()
137
+ db.refresh(db_curso)
138
+ return db_curso
139
+
140
+
141
+ @router.get("/cursos/search/", response_model=List[Cursos])
142
+ def search_cursos(curso: SearchCursos, db: Session = Depends(get_db)):
143
+ query = db.query(DBCursos)
144
+ if curso.nombre_curso:
145
+ query = query.filter(DBCursos.Nombre_Curso.contains(curso.nombre_curso))
146
+ return query.all()
147
+
148
+
149
+ # Horarios
150
+ @router.get("/horarios/", response_model=List[Horarios])
151
+ def get_horarios(db: Session = Depends(get_db)):
152
+ return db.query(DBHorarios).all()
153
+
154
+
155
+ @router.post("/horarios/", response_model=Horarios)
156
+ def create_horario(horario: HorariosCreate, db: Session = Depends(get_db)):
157
+ db_horario = DBHorarios(**horario.model_dump())
158
+ db.add(db_horario)
159
+ db.commit()
160
+ db.refresh(db_horario)
161
+ return db_horario
162
+
163
+
164
+ @router.get("/horarios/search/", response_model=List[Horarios])
165
+ def search_horarios(horario: SearchHorarios, db: Session = Depends(get_db)):
166
+ query = db.query(DBHorarios)
167
+ if horario.dia:
168
+ query = query.filter(DBHorarios.D铆a.contains(horario.dia))
169
+ return query.all()
170
+
171
+
172
+ # Evaluaciones
173
+ @router.get("/evaluaciones/", response_model=List[Evaluaciones])
174
+ def get_evaluaciones(db: Session = Depends(get_db)):
175
+ return db.query(DBEvaluaciones).all()
176
+
177
+
178
+ @router.post("/evaluaciones/", response_model=Evaluaciones)
179
+ def create_evaluacion(evaluacion: EvaluacionesCreate, db: Session = Depends(get_db)):
180
+ db_evaluacion = DBEvaluaciones(**evaluacion.model_dump())
181
+ db.add(db_evaluacion)
182
+ db.commit()
183
+ db.refresh(db_evaluacion)
184
+ return db_evaluacion
185
+
186
+
187
+ @router.get("/evaluaciones/search/", response_model=List[Evaluaciones])
188
+ def search_evaluaciones(evaluacion: SearchEvaluaciones, db: Session = Depends(get_db)):
189
+ query = db.query(DBEvaluaciones)
190
+ if evaluacion.id_estudiante:
191
+ query = query.filter(DBEvaluaciones.ID_Estudiante == evaluacion.id_estudiante)
192
+ if evaluacion.id_curso:
193
+ query = query.filter(DBEvaluaciones.ID_Curso == evaluacion.id_curso)
194
+ return query.all()