Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

erro no horario de funcionamento

A nminha classe da validação do horario de atendiemtno esta igual a do video porem nao roda

package med.absolut.api.consulta.validacoes;

import java.time.Duration;
import java.time.LocalDateTime;

import org.springframework.stereotype.Component;

import med.absolut.api.consulta.DadosAgendamento;
import med.absolut.api.infra.exception.ValidacaoException;

@Component
public class ValidadorHorarioAntecedencia implements Validador {

    @Override
    public void validar(DadosAgendamento dados) {
        
        var dataConsulta = dados.data();
        var agora = LocalDateTime.now();
        var duracaoEmMinutos = Duration.between(dataConsulta, agora).toMinutes();
        
        if(duracaoEmMinutos < 30) {
            throw new ValidacaoException("A consulta deve ser agendada com pelo menos 30 minutos de antecedencia");
        }
    }
}

meu dto dos dados de agendamento esta assim

package med.absolut.api.consulta;

import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;

import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
import med.absolut.api.medico.Especialidades;

public record DadosAgendamento(
        
        Long idMedico,
        
        @NotNull
        Long idPaciente,
        
        @NotNull
        @Future
        @JsonFormat(pattern = "dd/MM/yyyy HH:mm")
        LocalDateTime data,
        
        Especialidades especialidade
        ) {

}
5 respostas

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

Oi!

Acredito que esteja dando erro 400, pois você está enviando no json a data no formato americano, mas no DTO configurou para receber a data no formato brasileiro.

Sim estava no brasileiro antes porem continuava com o erro, assim que esta: "data": "17/08/2024 15:00"

solução!

No seu validador está assim:

Duration.between(dataConsulta, agora).toMinutes();

Mas é o contrário:

Duration.between(agora, dataConsulta).toMinutes();

ataa origado professor