Procházet zdrojové kódy

Add back end ability to update ingredient quantities

Lee Morgan před 6 roky
rodič
revize
565e5aac32
4 změnil soubory, kde provedl 42 přidání a 1 odebrání
  1. 26 0
      controllers/home.js
  2. 1 0
      routes.js
  3. 1 0
      views/inventory/inventory.ejs
  4. 14 1
      views/inventory/inventory.js

+ 26 - 0
controllers/home.js

@@ -142,5 +142,31 @@ module.exports = {
                 console.log(err);
                 return res.render("error");
             });
+    },
+
+    updateIngredient: (req, res)=>{
+        console.log(req.body);
+        Merchant.findOne({cloverId: merchantId})
+            .then((merchant)=>{
+                for(let item of merchant.inventory){
+                    
+                    if(req.body.id === item.ingredient.toString()){
+                        item.quantity = req.body.quantity;
+                        break;
+                    }
+                }
+                merchant.save()
+                    .then((updatedMerchant)=>{
+                        return res.json(updatedMerchant);
+                    })
+                    .catch((err)=>{
+                        console.log(err);
+                        return res.json(err);
+                    })
+            })
+            .catch((err)=>{
+                console.log(err);
+                return res.render("error");
+            });
     }
 }

+ 1 - 0
routes.js

@@ -6,4 +6,5 @@ module.exports = function(app){
     app.get("/getrecipes", home.getRecipes);
     app.post("/merchant/create", home.createMerchant);
     app.post("/ingredients/create", home.createNewIngredients);
+    app.post("/ingredients/update", home.updateIngredient);
 }

+ 1 - 0
views/inventory/inventory.ejs

@@ -27,6 +27,7 @@
         </div>
 
         <script>let merchant = <%- JSON.stringify(merchant) %>;</script>
+        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
         <script src="/inventory/inventory.js"></script>
     </body>
 </html>

+ 14 - 1
views/inventory/inventory.js

@@ -79,11 +79,24 @@ let editThis = (id, row)=>{
 let updateOne = (id, row)=>{
     let quantityField = row.childNodes[2];
     let quantity = quantityField.childNodes[0].value;
+    let button = row.childNodes[4].childNodes[0];
 
     quantityField.removeChild(quantityField.firstChild);
     quantityField.innerText = quantity;
 
-    row.childNodes[4].childNodes[0].innerText = "Edit";
+    button.innerText = "Edit";
+    button.onclick = ()=>{editThis(item.id, row)};
+
+    axios.post("/ingredients/update", {
+        id: id,
+        quantity: quantity
+    })
+        .then((ingredient)=>{
+            // console.log(ingredient);
+        })
+        .catch((err)=>{
+            console.log(err);
+        });
 }
 
 filter();