Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

VALIDACION RUT CHILENO

Hola

Me pasa lo siguiente al cambiar la lógica para validar solo el rut chileno y sin validar el digito verificador que es un tema más complejo y fuera de mi alcance, y no sé si algun compañero ha vivido este tema, los datos son:

La clase DatosRegistroPaciente se ve así:

package med.voll.api.domain.paciente.dto; import jakarta.validation.Valid; import jakarta.validation.constraints.*; import med.voll.api.domain.direccion.DatosDireccion;

public record DatosRegistroPaciente( @NotBlank String nombre, @NotBlank @Email String email,

    @NotBlank
    @Size(min = 0, max = 15)
    String telefono,
    

//validación para el RUT chileno

    @Pattern(
            regexp = "^\\d{1,3}(\\.\\d{3})*-?[0-9kK]$",
            message = "El RUT debe tener el formato xx.xxx.xxx-x, para Chile")
    @NotBlank
    String documento,

    @NotNull @Valid DatosDireccion direccion) {

}

Y la solicitud en Postman es: { "nombre" : "Felipe Muñoz", "email" : "felipe@voll.med", "telefono": "2223", "documento" : "12346", "especialidad": "ORTOPEDIA", "direccion":{ "calle":"calle 5", "distrito": "distrito 2", "ciudad": "Algarrobo", "numero": "1", "complemento": "a" } }-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Pero, al usar el formato para validar el rut chileno y cambiando la solcitud me da este error:

POSTMAN:

"nombre" : "Felipe Muñoz",
"email" : "felipe@voll.med",
"telefono": "2223",
"documento" : "12.346.000-9",
"especialidad": "ORTOPEDIA",
"direccion":{
    "calle":"calle 5",
    "distrito": "distrito 2",
    "ciudad": "Algarrobo",
    "numero": "1",
    "complemento": "a"
}

} ERROR

[ { "campo": "documento", "error": "debe coincidir con "\d{4,6}"" } ] Aparte, en el IDE todo funciona correctamente y en el logs de la terminal además tengo: Tomcat started on port(s): 8080 (http) with context path ''

1 respuesta

¡Hola!

Entiendo que estás teniendo problemas con la validación del RUT chileno en tu aplicación. Parece que estás utilizando el formato de RUT chileno con puntos y guión, pero estás recibiendo un error al intentar enviar la solicitud con el RUT formateado correctamente.

El mensaje de error que estás recibiendo indica que el campo "documento" debe coincidir con el patrón "\d{4,6}". Esto puede deberse a que el patrón de validación en la clase DatosRegistroPaciente no coincide con el formato que estás intentando enviar desde Postman.

Una posible solución sería ajustar el patrón de validación en la clase DatosRegistroPaciente para que coincida con el formato de RUT chileno con puntos y guión. Podrías intentar modificar el patrón de validación a algo como: "^\d{1,3}(\.\d{3}){1,2}-?[0-9kK]$", de manera que acepte el formato xx.xxx.xxx-x.

Después de realizar este ajuste, podrías probar nuevamente el envío de la solicitud desde Postman para verificar si el error persiste.

Espero que esta sugerencia te ayude a resolver el problema. ¡Buena suerte con tu proyecto!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!