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

Update monstrando as informações

Ao inves de fazer como foi proposta na aula, mostrando apenas o ID no return no meu de uma frase, eu estou tentando fazer o retorno das informações completas do documento alterado. Eu deveria estar fazendo uma nova query para pegar o dado depois de atualizado do banco ou poderia estar usando/implemento um get apos o dado? Já tentei de diversos modos porém sem sucesso

2 respostas
solução!

Olá, Leonardo! Tudo bem?

É uma prática comum e útil para fornecer feedback mais detalhado. Vou te mostrar como você pode fazer isso.

No método atualiza do seu controller, após realizar a atualização, você pode fazer uma nova query para buscar o registro atualizado e então retorná-lo. Vou te dar um exemplo prático de como isso pode ser feito:

async atualiza(req, res) {
    const { id } = req.params;
    const dadosAtualizados = req.body;
    try {
        const foiAtualizado = await this.entidadeService.atualizaRegistro(dadosAtualizados, Number(id));
        
        if (!foiAtualizado) {
            return res.status(400).json({ mensagem: 'Registro não foi atualizado' });
        }
        
        // Buscar o registro atualizado
        const registroAtualizado = await this.entidadeService.pegaPorId(Number(id));
        
        return res.status(200).json({ mensagem: 'Atualizado com sucesso', registro: registroAtualizado });
    } catch (erro) {
        return res.status(500).json({ mensagem: 'Erro ao atualizar registro', erro: erro.message });
    }
}

Para isso funcionar, você precisa ter um método pegaPorId no seu serviço que busca o registro pelo ID. Algo assim:

async pegaPorId(id) {
    return await this.model.findByPk(id);
}

Dessa forma, após a atualização, você faz uma nova consulta ao banco para pegar os dados atualizados e os retorna na resposta da requisição.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Perfeito, muito obrigado!