From 5d543f002f41dc2dfa26b2400bf29922956243ff Mon Sep 17 00:00:00 2001 From: matt Date: Mon, 25 Apr 2022 20:58:13 +0000 Subject: [PATCH] Add contact form functionality --- app.js | 1 + routes/main.js | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/app.js b/app.js index 416833c..61601e2 100644 --- a/app.js +++ b/app.js @@ -127,6 +127,7 @@ async function main() { '/register', '/password-reset', '/change-password', + '/contact', '/' ]; diff --git a/routes/main.js b/routes/main.js index 2e42434..09cb7e2 100644 --- a/routes/main.js +++ b/routes/main.js @@ -244,6 +244,40 @@ router.post('/change-password', async (req, res) => { return res.redirect('/login'); }); +router.post('/contact', (req, res) => { + let fields; + try { + fields = validator.validate(req.body, + [ + 'fname', + 'lname', + 'email', + 'body' + ], + { + email: 'email' + } + ).fields; + } catch (e) { + console.error(e); + return res.redirect('/'); + } + + const email = new EmailBuilder() + .setSubject('Stratos contact request') + .addTo([ + `${fields.get('fname')} <${fields.get('email')}>`, + 'Stratos ' + ]) + .setBody(fields.get('body')); + + const emailer = new Emailer(); + emailer.sendEmail(email); + + res.send('Thank you for your enquiry, someone will get back to you ' + + 'shortly!'); +}); + module.exports = { root: '/', router: router