passwordReset.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const Merchant = require("../models/merchant.js");
  2. const helper = require("./helper.js");
  3. const mailgun = require("mailgun-js")({apiKey: process.env.MG_SUBLINE_APIKEY, domain: "mail.thesubline.net"});
  4. const passwordReset = require("../emails/passwordReset.js");
  5. module.exports = {
  6. enterEmail: function(req, res){
  7. return res.render("passwordResetPages/email");
  8. },
  9. generateCode: function(req, res){
  10. Merchant.findOne({email: req.body.email})
  11. .then((merchant)=>{
  12. if(merchant === null){
  13. req.session.error = "USER WITH THIS EMAIL DOES NOT EXIST";
  14. return res.redirect("/");
  15. }
  16. merchant.verifyId = helper.generateId(15);
  17. const mailgunData = {
  18. from: "The Subline <clientsupport@thesusbline.net>",
  19. to: merchant.email,
  20. subject: "Password Reset",
  21. html: passwordReset({
  22. name: merchant.name,
  23. link: `${process.env.SITE}/reset/${merchant.verifyId}`
  24. })
  25. };
  26. mailgun.messages().send(mailgunData, (err, body)=>{
  27. console.log(err);
  28. });
  29. return merchant.save();
  30. })
  31. .then((merchant)=>{
  32. req.session.error = "PASSWORD RESET EMAIL SENT";
  33. return res.redirect("/");
  34. })
  35. .catch((err)=>{
  36. console.log(err);
  37. req.session.error = "ERROR: UNABLE TO RESET PASSWORD AT THIS TIME";
  38. return res.redirect("/");
  39. });
  40. },
  41. enterPassword: function(req, res){
  42. return res.render("passwordResetPages/password", {code: req.params.code});
  43. }
  44. }