otherData.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const Merchant = require("../models/merchant");
  2. const bcrypt = require("bcryptjs");
  3. const axios = require("axios");
  4. module.exports = {
  5. /*
  6. POST - logs the user in
  7. req.body = {
  8. email: email of the user,
  9. password: password of the user
  10. }
  11. Redirects to /dashboard
  12. */
  13. login: function(req, res){
  14. Merchant.findOne({email: req.body.email.toLowerCase()})
  15. .then((merchant)=>{
  16. if(merchant){
  17. bcrypt.compare(req.body.password, merchant.password, (err, result)=>{
  18. if(result){
  19. req.session.user = merchant.session.sessionId;
  20. return res.redirect("/dashboard");
  21. }else{
  22. req.session.error = "INVALID EMAIL OR PASSWORD";
  23. return res.redirect("/");
  24. }
  25. });
  26. }else{
  27. req.session.error = "INVALID EMAIL OR PASSWORD";
  28. return res.redirect("/");
  29. }
  30. })
  31. .catch((err)=>{
  32. req.session.error = "ERROR: UNABLE TO RETRIEVE USER DATA";
  33. return res.redirect("/");
  34. });
  35. },
  36. /*
  37. GET - logs the user out
  38. Redirects to /
  39. */
  40. logout: function(req, res){
  41. req.session.user = null;
  42. return res.redirect("/");
  43. }
  44. }