Validador de Data e Hora Futura - Felipe-builder/desafio-tecnico-backend-conexa GitHub Wiki
Validador de Data e Hora Futura
Introdução
Este documento descreve o processo de validação de datas e horas futuras em Java usando a anotação @FutureDateTime e a classe FutureDateTimeValidator.
O que é @FutureDateTime?
A anotação @FutureDateTime é utilizada para garantir que um campo de data e hora em um DTO seja uma data futura.
Como Usar
Adicione a anotação @FutureDateTime ao campo de data e hora no seu DTO:
@JsonProperty("dataHora")
@FutureDateTime(message = "A data e hora devem estar no futuro.")
private String dateTime;
A mensagem fornecida será exibida quando a validação falhar.
Exemplo de Implementação
Aqui está um exemplo básico de implementação da anotação e do validador:
@Documented
@Constraint(validatedBy = FutureDateTimeValidator.class)
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface FutureDateTime {
String message() default "The date and time must be in the future";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class FutureDateTimeValidator implements ConstraintValidator<FutureDateTime, String> {
// Lógica de validação aqui
}
Exemplos de Uso
Request JSON
{
"dataHora": "2023-12-31T23:59:59"
}
Resposta de Erro
{
"status": 400,
"error": "Bad Request",
"message": "The date and time must be in the future",
"timestamp": "2023-07-01T12:34:56"
}
Conclusão
A validação de datas e horas futuras é essencial para garantir a integridade dos dados em seu sistema. Ao usar a anotação @FutureDateTime, você pode garantir que apenas datas futuras sejam aceitas nos seus DTOs.