Service
public List<PostDTO> fullSearch(String text, String start, String end) {
//esse epochmilli garante que se o usuário não passar o início,
// ele pegue a data de 1970 (menor valor possível)
Instant startMoment = convertMoment(start, Instant.ofEpochMilli(0L));
//Caso o usuário não passe nada, será o instant de agora.
//ou seja: com certeza não tem nenhum post da hora atual
Instant endMoment = convertMoment(end, Instant.now());
List<Post> posts = postRepository.fullSearch(text, startMoment, endMoment);
return posts.stream().map(PostDTO::new).toList();
}
private Instant convertMoment(String originalString, Instant alternative) {
try {
return Instant.parse(originalString);
}
catch (DateTimeParseException e) {
return alternative;
}
}
Atualizado