Meu povo, tô com um problema aqui na minha API REST em Kotlin. Tenho duas funções, sendo que uma delas está fazendo uma validação desnecessária. A primeira, listarPorId, busca uma tarefa pelo ID e lança uma exceção se não encontrar. A segunda, atualizar
, usa listarPorId pra pegara tarefa antes de atualizar, mas acabo validando duas vezes porque o Kotlin obriga.
Acho que vocês perceberam que não é necessário a validação de atualizar
, já que a listarPorId
já faz isso.
Como faço pra refatorar essas funções e evitar essa validação dupla? Já tentei remover a validação de atualizar
mas fica dando erro em tarefas.minus(tarefa).plus(tarefaAtualizada)
dizendo que tarefaAtualizada é Tarefa?
.
fun listarPorId(id: Long): Tarefa? {
val tarefa = tarefas.find { it.id == id }
if (tarefa != null) {
return tarefa
} else {
throw ResourceNotFoundException("Tarefa não cadastrada")
}
}
fun atualizar(atualizarTarefaDTO: AtualizarTarefaDTO) {
val tarefa = listarPorId(atualizarTarefaDTO.id)
if (tarefa != null) {
val tarefaAtualizada = Tarefa(
id = atualizarTarefaDTO.id,
titulo = atualizarTarefaDTO.titulo,
descricao = atualizarTarefaDTO.descricao,
usuario = tarefa.usuario
)
tarefas = tarefas.minus(tarefa).plus(tarefaAtualizada)
} else {
throw ResourceNotFoundException("Tarefa não cadastrada")
}
}