| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- const Owner = require("../models/owner.js");
- // const mailgun = require("mailgun.js")({apiKey: process.env.MG_SUBLINE_APIKEY, domain: "mail.thesubline.net"});
- const formData = require("form-data");
- const Mailgun = require("mailgun.js");
- const mailgun = new Mailgun(formData);
- const mg = mailgun.client({username: "api", key: process.env.MG_SUBLINE_APIKEY});
- const verifyEmail = require("../emails/verifyEmail.js");
- module.exports = {
- sendVerifyEmail: function(req, res){
- let saveOwner = {};
- Owner.findOne({_id: req.params.id})
- .then((owner)=>{
- saveOwner = owner;
- // const mailgunData = {
- // from: "The Subline <clientsupport@thesubline.net>",
- // to: owner.email,
- // subject: "Email verification",
- // html: verifyEmail({
- // name: owner.name,
- // link: `${process.env.SITE}/verify/${owner._id}/${owner.session.sessionId}`,
- // })
- // };
- // mailgun.messages().send(mailgunData, (err, body)=>{});
- return mg.messages.create("mail.thesubline.net", {
- from: "The Subline <clientsupport@thesubline.net>",
- to: owner.email,
- subject: "Email verification",
- html: verifyEmail({
- name: owner.name,
- link: `${process.env.SITE}/verify/${owner._id}/${owner.session.sessionId}`
- })
- });
- })
- .then((response)=>{
- return res.render(`verifyPage/verify`, {id: saveOwner._id, email: saveOwner.email, banner: res.locals.merchant});
- })
- .catch((err)=>{
- req.session.error = "ERROR: UNABLE TO SEND VERIFICATION EMAIL";
- return res.redirect("/");
- });
- },
- resendEmail: function(req, res){
- Owner.findOne({email: req.body.email.toLowerCase()})
- .then((owner)=>{
- if(owner) throw "USER WITH THIS EMAIL ADDRESS ALREADY EXISTS";
- return owner.findOne({_id: req.body.id});
- })
- .then((owner)=>{
- owner.email = req.body.email.toLowerCase();
- return owner.save();
- })
- .then((owner)=>{
- return res.redirect(`/verify/email/${owner._id}`);
- })
- .catch((err)=>{
- if(typeof(err) === "string"){
- req.session.error = err;
- }else if(err.name === "ValidationError"){
- req.session.error = err.errors[Object.keys(err.errors)[0]].properties.message;
- }else{
- req.session.error = "ERROR: UNABLE TO CHANGE YOUR EMAIL ADDRESS";
- }
- return res.redirect("/");
- });
- },
- verify: function(req, res){
- Owner.findOne({_id: req.params.id})
- .then((owner)=>{
- if(req.params.code !== owner.session.sessionId){
- throw "UNABLE TO VERIFY EMAIL ADDRESS. INCORRECT LINK";
- }
- owner.status.splice(owner.status.indexOf("unverified"), 1);
- const mailgunList = mailgun.lists("clientsupport@mail.thesubline.com");
- const memberData = {
- subscribed: true,
- address: owner.email,
- name: owner.name,
- vars: {}
- }
- mailgunList.members().create(memberData, (err, data)=>{});
- return owner.save();
- })
- .then((owner)=>{
- req.session.success = "EMAIL VERIFIED. PLEASE LOG IN";
- return res.redirect("/login");
- })
- .catch((err)=>{
- if(typeof(err) === "string"){
- req.session.error = err;
- }else{
- req.session.error = "ERROR: UNABLE TO VERIFY EMAIL ADDRESS"
- }
- return res.redirect("/");
- });
- }
- }
|