|
| 1 | +const express = require('express'); |
| 2 | +const Site = require('../../models/site'); |
| 3 | +const { sendMail } = require('../../models/mail'); |
| 4 | +const { JsonInfo } = require('../../utils'); |
| 5 | +const router = express.Router(); |
| 6 | + |
| 7 | +module.exports = function () { |
| 8 | + router.post('/', (req, res, next) => { |
| 9 | + const body = req.body; |
| 10 | + try { |
| 11 | + const name = body['name']; |
| 12 | + const subject = body['subject']; |
| 13 | + const email = body['email']; |
| 14 | + const message = body['message']; |
| 15 | + const personal_template_id = 'd-ef38ad57230d4d5296f7e6b3d60ffc4c'; |
| 16 | + const site = new Site(); |
| 17 | + site.server.client_id = req.site.server.client_id; |
| 18 | + site.loadAddress((err, address) => { |
| 19 | + if (err || address === null) return next(new Error('Unable to find site details')); |
| 20 | + const msg = { |
| 21 | + to: req.site.content.email, |
| 22 | + from: req.site.content.email, |
| 23 | + templateId: personal_template_id, |
| 24 | + dynamic_template_data: { |
| 25 | + name: name, |
| 26 | + email: email, |
| 27 | + title: subject, |
| 28 | + message: message, |
| 29 | + Sender_Name: address.name, |
| 30 | + Sender_Address: address.address1, |
| 31 | + Sender_City: address.town, |
| 32 | + Sender_State: address.province, |
| 33 | + Sender_Zip: address.postcode |
| 34 | + } |
| 35 | + }; |
| 36 | + sendMail(msg, req.hostname); |
| 37 | + return res.json(new JsonInfo('Done', 200)); |
| 38 | + }); |
| 39 | + } |
| 40 | + catch(err) { |
| 41 | + console.log(err); |
| 42 | + return next(err); |
| 43 | + } |
| 44 | + }); |
| 45 | + return router; |
| 46 | +}; |
0 commit comments