1
resposta

Atualizar autor do livro

Faltou mostrar no curso como faz para atualizar o autor do livro referenciando. Tentei e não consegui.

1 resposta

Olá, Guilherme. Tudo bem?

Vou tentar te ajudar com isso. Para atualizar o autor de um livro, você precisará fazer uma requisição de atualização (PUT ou PATCH) para a API, onde você especificará o ID do livro que deseja atualizar e os novos dados do autor.

Aqui está um exemplo de como você pode fazer isso:

  1. Defina a Rota: Primeiro, você precisa definir uma rota para atualizar o autor em seu arquivo de rotas, algo como:

    routes.put("/livros/:id/autor", LivroController.atualizarAutorDoLivro);
    
  2. Crie o Método no Controller: No LivroController, você pode criar um método para lidar com essa atualização:

    static async atualizarAutorDoLivro(req, res) {
      const id = req.params.id;
      const novoAutor = req.body.autor;
    
      try {
        const livroAtualizado = await Livro.findByIdAndUpdate(id, { autor: novoAutor }, { new: true });
        if (livroAtualizado) {
          res.status(200).json(livroAtualizado);
        } else {
          res.status(404).json({ message: "Livro não encontrado" });
        }
      } catch (erro) {
        res.status(500).json({ message: `${erro.message} - falha ao atualizar o autor` });
      }
    }
    
  3. Teste a Atualização: Você pode testar essa atualização usando uma ferramenta como o Postman. Faça uma requisição PUT para http://localhost:3000/livros/{id}/autor, substituindo {id} pelo ID do livro que deseja atualizar. No corpo da requisição, envie o novo autor:

    {
      "autor": "Novo Nome do Autor"
    }
    

Espero que isso ajude a resolver sua dúvida. Qualquer coisa manda o código. Bons estudos.

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