Dado que al momento de crear la base de datos usando la primer versión de la migration se estableció que los campos email y documento son únicos (o sea que NO SE PUEDEN REPETIR), entonces si queremos registrar un nuevo médico con un email o documento ya registrados, Insomnia manda el código http 500 (Internal Server Error). Me di cuenta que ese código http no es correcto y que debería de mandar el 400 (Bad Request) entonces tomé la exception que lanza el stacktrace de la consola de IntelliJ el cual es: SQLIntegrityConstraintViolationException y creé un método que gestiona ese error en la clase GestorDeErrores:
@ExceptionHandler(SQLIntegrityConstraintViolationException.class)
public ResponseEntity<String>
gestionarErrorEmailODocumentoYaRegistrados(SQLIntegrityConstraintViolationException exception) {
return ResponseEntity.badRequest().body(exception.getMessage());
}
Y como ejemplo de ejecución adjunto las siguientes imágenes:
Sin la gestión del error:
Con la gestión del error:
¿Qué opinan?, compañeras y compañeros