Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Atualizar e Retornar informações do registro atualizado

No curso, a implementação do método de atualização de registros não retorna os dados atualizados, o que pode ser um problema em algumas situações onde precisamos confirmar ou manipular os novos valores.

Implementação original:

async atualizaRegistro(dadosAtualizados, id) {
  const listadeRegistrosAtualizados = dataSource[this.model].update(
    dadosAtualizados,
    {
      where: { id: id },
    }
  );
  if (listadeRegistrosAtualizados[0] === 0) {
    return false;
  }
  return true;
}

Problema

Essa abordagem apenas retorna true ou false, indicando se houve ou não atualização, mas não retorna os dados do registro atualizado. Isso pode ser inconveniente caso precisemos confirmar as mudanças aplicadas.

Sugestão de Melhoria

Para solucionar esse problema, podemos modificar o método para buscar o registro antes da atualização e retornar os dados já modificados. Abaixo está minha sugestão de implementação no Service e Controller:

Services:

async atualizaRegistro(dadosAtualizados, id) {
  const registroEncontrado = await this.pegaUmRegistroPorId(id);
  if (!registroEncontrado) {
    return false;
  }
  return await registroEncontrado.update(dadosAtualizados);
}

Controller:

  async atualiza(req, res) {
    const { id } = req.params;
    const dadosAtualizados = req.body;
    try {
      //isUpdated
      const registroAtualizado = await this.entidadeService.atualizaRegistro(
        dadosAtualizados,
        Number(id)
      );
      if (!registroAtualizado) {
        return res
          .status(400)
          .json({ mensagem: "registro não foi atualizado" });
      }
      return res.status(200).json(registroAtualizado);
    } catch (erro) {
      console.log(erro);
    }
  }

Vantagens

  • Retorna o registro atualizado, permitindo acesso imediato aos novos dados.
  • Evita a necessidade de uma nova busca após a atualização.
1 resposta
solução!

Olá, Aldeny. Tudo bem?

Sua sugestão de melhoria para o método de atualização está muito bem pensada e pode realmente trazer benefícios ao fluxo da aplicação. Retornar o registro atualizado é uma prática comum que ajuda a confirmar as mudanças realizadas e facilita manipulações posteriores.

Na sua implementação, você já está utilizando o método update do Sequelize. A ideia de buscar o registro antes de atualizá-lo e depois retornar o objeto atualizado é uma ótima abordagem. Com isso você tem acesso imediato aos dados atualizados, o que pode ser útil para validações ou para retornar informações ao usuário, e evita a necessidade de uma nova busca após a atualização, tornando o fluxo melhor.

Essa abordagem é especialmente útil em APIs RESTful, onde é comum retornar o estado atual do recurso após uma operação de atualização.

Espero ter ajudado.

  Alura   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!