Refactor: quita 17 endpoints sin uso del frontend
Qué
- Se eliminan 17 endpoints que el frontend no consume, junto con sus métodos de service, DTOs, repository y tests.
- Se sacan del seed de
proyecto_schema.sqllos 5 permisos que dejaron de exigirse (EDITAR_PERMISOy los 4 de editar y eliminar comentarios de estudiante), y de la lista de permisos del rol PSICOPEDAGOGO.
Por qué
- Se cruzaron los 137 endpoints del backend con las llamadas del frontend. Se usan 107 y los 17 de este MR no tenían ningún consumidor.
- La mayoría eran redundantes. Los
GETpor id repetían lo que ya devuelve el listado, y los teléfonos ya viajan en el arreglotelefonosde los estudiantes. -
PUTyDELETEde comentarios de estudiante no se usan a propósito. Un comentario es historia de seguimiento y se corrige citándolo desde uno nuevo. - Los 5 permisos quedaban sin ningún endpoint que los exija.
Cambios
- Teléfonos: se eliminan
GET,POSTyDELETE /telefonoscompletos (controller, service, repository, mapper y DTOs). Se conservan la entidadTelefonoy la tablaestu_telefonos, que usaEstudianteService.asignarTelefonos. - Permisos: se elimina
PUT /permisos/{id},PermisoUpdateDTOy el@CacheEvictdePermisoService, que ya no tiene quién lo invalide. - Funcionarios: se elimina
GET /funcionarios/documento/{documento}yfindByDocumentoAndEstado. QuedaGET /funcionarios?texto=, que ya busca por documento. - Auditoría: se elimina
GET /auditorias/{id}. El listado ya traevalorAnterioryvalorNuevo. - Recordatorios: se elimina
GET /recordatorios/responsable/{idResponsable}y las dos sobrecargas defindByResponsableAndEstado. QuedanGET /recordatoriosyGET /recordatorios/instancia/{cod}. - Informes adjuntos: se elimina
GET /informes-adjuntos/{id}. El listado ya devuelve los mismos datos de cada informe. Se conservan la descarga y los endpoints/miosdel estudiante. - Comentarios de instancia: se eliminan los
GETpor id de normales y confidenciales.editaryeliminarconservan la validación de que el comentario pertenezca a la instancia de la URL. - Comentarios de estudiante: se eliminan
GET,PUTyDELETEpor id de normales y confidenciales, con susUpdateDTO. - Estudiantes: se elimina
GET /estudiantes/{id}/resumen. El listado sigue usandoaResumenytoResumenDto.
Despliegue
En bases ya desplegadas hay que borrar a mano los 5 permisos. Primero se borran sus filas en rol_permisos y después las de permisos, porque las FK son ON DELETE RESTRICT. En una base nueva no hace falta.
BEGIN;
DELETE FROM proyecto.rol_permisos
WHERE id_permiso IN (SELECT id_permiso FROM proyecto.permisos WHERE nom_permiso IN (
'EDITAR_PERMISO',
'EDITAR_COMENTARIO_NORMAL_ESTUDIANTE', 'EDITAR_COMENTARIO_CONFIDENCIAL_ESTUDIANTE',
'ELIMINAR_COMENTARIO_NORMAL_ESTUDIANTE', 'ELIMINAR_COMENTARIO_CONFIDENCIAL_ESTUDIANTE'));
DELETE FROM proyecto.permisos WHERE nom_permiso IN (
'EDITAR_PERMISO',
'EDITAR_COMENTARIO_NORMAL_ESTUDIANTE', 'EDITAR_COMENTARIO_CONFIDENCIAL_ESTUDIANTE',
'ELIMINAR_COMENTARIO_NORMAL_ESTUDIANTE', 'ELIMINAR_COMENTARIO_CONFIDENCIAL_ESTUDIANTE');
COMMIT;
Impacto en el frontend
- Ninguno de los endpoints eliminados se usaba, así que no debería romper nada.
- Los 5 permisos eliminados se sacan de
src/lib/permisos.tsen el MR 57 del frontend.