newIngredient.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. module.exports = {
  2. display: function(){
  3. openSidebar(document.querySelector("#newIngredient"));
  4. document.querySelector("#newIngName").value = "";
  5. document.querySelector("#newIngCategory").value = "";
  6. document.querySelector("#newIngQuantity").value = 0;
  7. },
  8. submit: function(){
  9. let unitSelector = document.getElementById("unitSelector");
  10. let options = document.querySelectorAll("#unitSelector option");
  11. let unit = unitSelector.value;
  12. let newIngredient = {
  13. ingredient: {
  14. name: document.getElementById("newIngName").value,
  15. category: document.getElementById("newIngCategory").value,
  16. unitType: options[unitSelector.selectedIndex].getAttribute("type"),
  17. },
  18. quantity: convertToMain(unit, document.querySelector("#newIngQuantity").value),
  19. defaultUnit: unit
  20. }
  21. let loader = document.getElementById("loaderContainer");
  22. loader.style.display = "flex";
  23. fetch("/ingredients/create", {
  24. method: "POST",
  25. headers: {
  26. "Content-Type": "application/json;charset=utf-8"
  27. },
  28. body: JSON.stringify(newIngredient)
  29. })
  30. .then((response) => response.json())
  31. .then((response)=>{
  32. if(typeof(response) === "string"){
  33. banner.createError(response);
  34. }else{
  35. merchant.editIngredients([{
  36. ingredient: new Ingredient(
  37. response.ingredient._id,
  38. response.ingredient.name,
  39. response.ingredient.category,
  40. response.ingredient.unitType,
  41. response.defaultUnit,
  42. merchant
  43. ),
  44. quantity: response.quantity
  45. }]);
  46. banner.createNotification("INGREDIENT CREATED");
  47. }
  48. })
  49. .catch((err)=>{
  50. banner.createError("SOMETHING WENT WRONG. PLEASE REFRESH THE PAGE");
  51. })
  52. .finally(()=>{
  53. loader.style.display = "none";
  54. });
  55. }
  56. }