middleware.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. const Merchant = require("./models/merchant.js")
  2. module.exports = {
  3. verifySession: function(req, res, next){
  4. if(req.session.user === undefined) {
  5. req.session.error = "PLEASE LOG IN";
  6. return res.redirect("/");
  7. }
  8. Merchant.findOne({"session.sessionId": req.session.user})
  9. .then((merchant)=>{
  10. if(merchant === null){
  11. throw "no merchant";
  12. }
  13. if(merchant.session.date < new Date()){
  14. let newExpiration = new Date();
  15. newExpiration.setDate(newExpiration.getDate() + 90);
  16. merchant.session.sessionId = helper.generateId(25);
  17. merchant.session.date = newExpiration;
  18. merchant.save();
  19. return res.redirect("/");
  20. }
  21. res.locals.merchant = merchant;
  22. return next();
  23. })
  24. .catch((err)=>{
  25. if(err === "no merchant"){
  26. req.session.error = "PLEASE LOG IN";
  27. return res.redirect("/");
  28. }
  29. return res.json("ERROR: UNABLE TO RETRIEVE DATA");
  30. });
  31. },
  32. formatBanner: function(req, res, next){
  33. if(req.session.error !== undefined){
  34. res.locals.banner = {
  35. type: "error",
  36. message: req.session.error,
  37. color: "red"
  38. };
  39. req.session.error = undefined;
  40. }else if(req.session.success !== undefined){
  41. res.locals.banner = {
  42. type: "notification",
  43. message: req.session.success,
  44. color: "green"
  45. };
  46. req.session.success = undefined;
  47. }
  48. return next();
  49. }
  50. }