validation.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. let validator = {
  2. ingredient: {
  3. name: function(ingName, createBanner = true){
  4. //Check for special chars
  5. if(!validator.isSanitary(ingName)){
  6. if(createBanner){
  7. banner.createError("Your inputs contain illegal characters");
  8. }
  9. return false
  10. }
  11. //Check for length
  12. if(ingName.length < 2){
  13. if(createBanner){
  14. banner.createError("Ingredient name must contain at least 2 characters");
  15. }
  16. return false;
  17. }
  18. return true;
  19. },
  20. category: function(ingCategory, createBanner = true){
  21. //Check for special chars
  22. if(!validator.isSanitary(ingCategory)){
  23. if(createBanner){
  24. banner.createError("Your inputs contain illegal characters");
  25. }
  26. return false;
  27. }
  28. //Check for length
  29. if(ingCategory.length < 3){
  30. if(createBanner){
  31. banner.createError("Category name must contain at least 3 characters");
  32. }
  33. return false;
  34. }
  35. return true;
  36. },
  37. quantity: function(num, createBanner = true){
  38. if(isNaN(num) || num === ""){
  39. if(createBanner){
  40. banner.createError("Must enter a valid number");
  41. }
  42. return false;
  43. }
  44. if(num < 0){
  45. if(createBanner){
  46. banner.createError("Quantity cannot be a negative number");
  47. }
  48. return false;
  49. }
  50. return true;
  51. },
  52. unit: function(ingUnit, createBanner = true){
  53. //Check for special chars
  54. if(!validator.isSanitary(ingUnit)){
  55. if(createBanner){
  56. banner.createError("Your inputs contain illegal characters");
  57. }
  58. return false;
  59. }
  60. return true;
  61. },
  62. //Check all parts of ingredient, return true if all pass
  63. //Quantity passed seperately and optional
  64. all: function(ingObject, quantity = 0, createBanner = true){
  65. let nameCheck = this.name(ingObject.name, createBanner);
  66. let categoryCheck = this.category(ingObject.category, createBanner);
  67. let unitCheck = this.unit(ingObject.unit, createBanner);
  68. let quantityCheck = this.quantity(quantity, createBanner);
  69. if(!nameCheck || !categoryCheck || !quantityCheck || !unitCheck){
  70. return false;
  71. }
  72. return true;
  73. }
  74. },
  75. merchant: {
  76. password: function(pass, confirmPass, createBanner = true){
  77. if(pass !== confirmPass){
  78. if(createBanner){
  79. banner.createError("Your passwords do not match");
  80. }
  81. return false;
  82. }
  83. if(pass.length < 15){
  84. if(createBanner){
  85. banner.createError("Your password must contain at least 15 characters");
  86. }
  87. return false;
  88. }
  89. return true;
  90. }
  91. },
  92. isSanitary: function(str){
  93. let disallowed = ["\\", "<", ">", "$"];
  94. for(let char of disallowed){
  95. if(str.includes(char)){
  96. return false;
  97. }
  98. }
  99. return true;
  100. }
  101. }