Refactorización y estandarización de API, uso de mappers, actualización de tests y creación de nuevo módulo
Descripción
Refactorización completa del módulo perfil y creación del módulo funcionalidad para cumplir con los requerimientos específicos del proyecto. Se reestructuraron las funcionalidades de registro, actualización y baja/reactivación de perfil, mejorando la arquitectura del código y agregando validaciones robustas a cada operación.
Tipo de cambio
Módulo Perfil - Refactorización integral
-
Ampliación del registro de perfil: Incorporación de campos adicionales que anteriormente no se consideraban en el proceso de registro. Para mantener compatibilidad con la lógica de autorización existente, se agregó un campo Rol a la entidad perfil para identificar el rol de cada perfil (ej: perfil Administrador → Rol ADMIN), cumpliendo con los requerimientos de autorización de Spring Security. -
Refactorización de métodos core: Actualización completa de métodos de registro, actualización y listados incorporando los nuevos campos y validaciones. -
Mejora en eliminación de perfiles: Refactorización del método de eliminación para implementar baja lógica (cambio de estado) en lugar de eliminación física de registros, preservando la integridad referencial.
Módulo Funcionalidad - Implementación completa
-
Creación de módulo funcionalidad: Implementación de CRUD completo para funcionalidades con lógica de gestión de acceso y permisos. -
Gestión de permisos: Integración entre perfiles y funcionalidades para control de acceso granular.
Mejoras arquitecturales transversales
-
Creación de DTOs y validaciones: Implementación de esquemas DTO especializados y validaciones consistentes, separando DTOs de creación de DTOs de respuesta para mejor mantenimiento del código. -
Implementación de filtros dinámicos: Integración de Spring Specification en ambos módulos para permitir consultas con filtros dinámicos y flexibles. -
Estandarización de respuestas API: Mejora en endpoints de todos los módulos con implementación uniforme de ApiResponse para proporcionar mensajes de error y éxito consistentes hacia el frontend.
Checklist de calidad
-
El código sigue las convenciones del proyecto -
Se realizaron pruebas funcionales exhaustivas -
Se actualizó la documentación y esquemas de base de datos -
Los commits tienen mensajes descriptivos y granulares -
Se cumple con todos los módulos obligatorios solicitados para el proyecto -
Se utilizan herramientas que evitan duplicación de código y errores humanos (mappers, enums, DTOs, specifications) -
Validaciones consistentes con manejo de errores estandarizado
Testing realizado
-
Pruebas funcionales con Postman actualizadas -
Validación de funcionalidad existente sin regresiones -
Verificación de nuevas validaciones y esquemas DTO -
Testing de filtros dinámicos con Spring Specification -
Validación de respuestas API estandarizadas
Testing detallado
Los cambios fueron exhaustivamente probados utilizando Postman, incluyendo:
- Registro de perfil con nuevos campos y validaciones
- Baja y reactivación lógica de perfil y funcionalidad
- Filtros dinámicos en consultas de perfil y funcionalidad
- Validación de mensajes de error y éxito
La colección de Postman fue actualizada para reflejar todos los cambios implementados.