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

Solução para o erro

Não consegui responder o tópico do Samuel, já estava fechado... Mas se mais alguém estiver tendo esse problema de não aparecer a mensagem de erro NaoEncontrado ao digitar um fornecedor ou produto inválido, é só adicionar a linha await Tabela.pegarPorId(id, fornecedor) antes de chamar o método atualizar() na rota de produtos. Fica assim:

// api > rotas > fornecedores > produtos > index.js

roteador.put("/:id", async (req, res, proximo) => {
    try {
        const id = req.params.id
        const fornecedor = req.fornecedor.id
        const dados = Object.assign(
            {},
            req.body,
            {
                id: id,
                fornecedor: fornecedor
            }
        )

        const produto = new Produto(dados)
        await Tabela.pegarPorId(id, fornecedor)
        await produto.atualizar()

        res.set("X-Powered-By", "Gatito")
        res.set("ETag", produto.versao)
        const timestamp = (new Date(produto.dataAtualizacao)).getTime()
        res.set("Last-Modified", timestamp)

        res.status(204)
        res.end()
    } catch(erro) {
        proximo(erro)
    }
})

Dessa forma a verificação é feita antes da atualização.

2 respostas
solução!

Boa tarde Juliana, tudo certo?

Muito obrigado por compartilhar o seu achado conosco! Documentar o que estamos descobrindo é uma ótima forma de fixar o conhecimento, e por tabela você ainda está ajudando toda a comunidade.

Vou fazer uma sugestão para a equipe de colocar essa dica no curso e te atribuir os créditos, tudo bem por ti?

Continue assim e bons estudos!

Oi, João! Tudo bem?Que legal! Claro, por mim sem problemas :DObrigada pelo retorno.