0322CDFSNCN16LAED / grupo-07

Grupo 07 - Take Off Surf - Marketplace
2 stars 0 forks source link

Llamar la función cada vez que se ejecute un método del controlador #1

Open LuiosDyet opened 2 years ago

LuiosDyet commented 2 years ago

https://github.com/0322CDFSNCN16LAED/grupo-07/blob/604d6f9e1b9798e28179b5b88841a98857c819ea/controllers/productsController.js#L4

// Llamar la función cada vez que se ejecute un método del controlador // pueden seguir esta conversación que da una pista de este error // https://discord.com/channels/955297766001750076/979147632289128478/990372302833201172 // const products = db.getProducts();

Piarrot commented 2 years ago

Sprint 5 esto sigue sin estar resuelto!

FelixUgarte commented 2 years ago

En este caso, de acuerdo al video que explica Luis lo que debíamos hacer llamar a la función de getProducts() en cada método del controlador para que, por ejemplo, al borrar un producto, vuelva a requerir los productos en el controlador correspondiente y lo modifique ya que si lo tenemos definido en una variable fuera de cada método del controlador (global), al actualizar o borrar no se verá el cambio realizado porque ya tomó los productos en la función definida al principio const products = db.getProducts();

Por ejemplo, hacerlo de la siguiente forma:

destroy: (req, res) => { const products = db.getProducts(); const index = products.findIndex((p) => p.id == req.params.id);

    if(products[index].image != '/images/default-image.png')
    {
      fs.unlinkSync( path.join(__dirname,'../public/'+ products[index].image));
    }
    products.splice(index,1);  
    db.saveProducts(products);
    res.redirect("/");
}

Saludos