Răsfoiți Sursa

Update error handling for ingredientData.js

Lee Morgan 6 ani în urmă
părinte
comite
896fdfd4ea

+ 46 - 11
controllers/ingredientData.js

@@ -11,8 +11,15 @@ module.exports = {
                 return res.json(ingredients);
             })
             .catch((err)=>{
-                console.log(err);
-                return res.render("error");
+                let errorMessage = "Unable to retrieve ingredients";
+                let error = new Error({
+                    code: 626,
+                    displayMessage: errorMessage,
+                    error: err
+                });
+                error.save();
+
+                return res.json(errorMessage);
             });
     },
 
@@ -31,8 +38,15 @@ module.exports = {
                 return res.json(ingredients);
             })
             .catch((err)=>{
-                console.log(err);
-                return res.render("error");
+                let errorMessage = "There was an error and the ingredients could not be created";
+                let error = new Error({
+                    code: 547,
+                    displayMessage: errorMessage,
+                    error: err
+                });
+                error.save();
+
+                return res.json(errorMessage);
             });
     },
 
@@ -62,18 +76,39 @@ module.exports = {
                                 return res.json(item);
                             })
                             .catch((err)=>{
-                                console.log(err);
-                                return res.render("error");
+                                let errorMessage = "There was an error and the data could not be saved";
+                                let error = new Error({
+                                    code: 547,
+                                    displayMessage: errorMessage,
+                                    error: err
+                                });
+                                error.save();
+                
+                                return res.json(errorMessage);
                             });
                     })
                     .catch((err)=>{
-                        console.log(err);
-                        return res.render("error");
+                        let errorMessage = "There was an error and your data could not be retrieved";
+                        let error = new Error({
+                            code: 626,
+                            displayMessage: errorMessage,
+                            error: err
+                        });
+                        error.save();
+        
+                        return res.json(errorMessage);
                     });
             })
             .catch((err)=>{
-                console.log(err);
-                return res.render("error");
-            });  
+                let errorMessage = "There was an error and the ingredient could not be created";
+                let error = new Error({
+                    code: 547,
+                    displayMessage: errorMessage,
+                    error: err
+                });
+                error.save();
+
+                return res.json(errorMessage);
+            });
     }
 }

+ 19 - 11
views/inventoryPage/addIngredient.js

@@ -13,14 +13,18 @@ let addIngredientObj = {
 
     populateIngredients: function(){
         axios.get("/ingredients")
-            .then((ingredients)=>{
-                let select = document.querySelector("#addIngredientStrand select");
+            .then((response)=>{
+                if(typeof(response.data) === "string"){
+                    banner.createError(response.data);
+                }else{
+                    let select = document.querySelector("#addIngredientStrand select");
 
-                for(let ingredient of ingredients.data){
-                    let option = document.createElement("option");
-                    option.value = ingredient._id;
-                    option.innerText = `${ingredient.name} (${ingredient.unit})`;
-                    select.appendChild(option);
+                    for(let ingredient of response.data){
+                        let option = document.createElement("option");
+                        option.value = ingredient._id;
+                        option.innerText = `${ingredient.name} (${ingredient.unit})`;
+                        select.appendChild(option);
+                    }
                 }
             })
             .catch((err)=>{
@@ -67,11 +71,15 @@ let addIngredientObj = {
 
         if(validator.ingredient.all(ingredient, quantity)){
             axios.post("/ingredients/createone", {ingredient: ingredient, quantity: quantity})
-                .then((item)=>{
-                    merchant.inventory.push(item.data);
+                .then((response)=>{
+                    if(typeof(response.data) === "string"){
+                        banner.createError(response.data);
+                    }else{
+                        merchant.inventory.push(response.data);
 
-                    inventoryObj.display();
-                    inventoryObj.filter();
+                        inventoryObj.display();
+                        inventoryObj.filter();
+                    }
                 })
                 .catch((err)=>{
                     banner.createError("Something went wrong and the ingredient could not be created");

+ 18 - 14
views/merchantSetupPage/createIngredients.js

@@ -92,24 +92,28 @@ let createIngredientsObj = {
 
         if(isValid){
             axios.post("/ingredients/create", axiosIngredients)
-                .then((ingredients)=>{
-                    for(let ingredient of newIngredients){
-                        for(let createdIngredient of ingredients.data){
-                            if(createdIngredient.name === ingredient.ingredient.name){
-                                ingredient.ingredient.id = createdIngredient._id;
-                                break;
+                .then((response)=>{
+                    if(typeof(response.data) === "string"){
+                        banner.createError(response.data);
+                    }else{
+                        for(let ingredient of newIngredients){
+                            for(let createdIngredient of response.data){
+                                if(createdIngredient.name === ingredient.ingredient.name){
+                                    ingredient.ingredient.id = createdIngredient._id;
+                                    break;
+                                }
                             }
-                        }
 
-                        controller.data.inventory.push(ingredient);
-                    }
+                            controller.data.inventory.push(ingredient);
+                        }
 
-                    banner.createNotification("All ingredients have been created and added to your inventory");
+                        banner.createNotification("All ingredients have been created and added to your inventory");
 
-                    if(recipes){
-                        createRecipesObj.display();
-                    }else{
-                        nameRecipesObj.display();
+                        if(recipes){
+                            createRecipesObj.display();
+                        }else{
+                            nameRecipesObj.display();
+                        }
                     }
                 })
                 .catch((err)=>{