From 876edee138df653c4b4a03bcacdf1cae8942ed49 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Sun, 23 Jan 2022 19:43:18 +1100 Subject: [PATCH] Add /_lib/get_nodemailer.jst --- _lib/get_nodemailer.jst | 11 +++++++++++ api/account/password_reset.json.jst | 14 ++++---------- .../send_email_verification_link.json.jst | 14 ++++---------- api/contact/send_enquiry.json.jst | 16 +++++----------- api/feedback.json.jst | 16 +++++----------- 5 files changed, 29 insertions(+), 42 deletions(-) create mode 100644 _lib/get_nodemailer.jst diff --git a/_lib/get_nodemailer.jst b/_lib/get_nodemailer.jst new file mode 100644 index 0000000..18a568c --- /dev/null +++ b/_lib/get_nodemailer.jst @@ -0,0 +1,11 @@ +let nodemailer = require('nodemailer') + +return async (env, transaction, name) => { + return nodemailer.createTransport( + await ( + await ( + await transaction.get({}) + ).get('nodemailer') + ).get_json(name) + ) +} diff --git a/api/account/password_reset.json.jst b/api/account/password_reset.json.jst index 080a97b..54eff78 100644 --- a/api/account/password_reset.json.jst +++ b/api/account/password_reset.json.jst @@ -1,9 +1,9 @@ let crypto = require('crypto') -let nodemailer = require('nodemailer') let XDate = require('xdate') return async env => { let get_globals = await _require('/_lib/get_globals.jst') + let get_nodemailer = await _require('/_lib/get_nodemailer.jst') let get_session = await _require('/_lib/get_session.jst') let post_request = await _require('/_lib/post_request.jst') let Problem = await _require('/_lib/Problem.jst') @@ -25,7 +25,7 @@ return async env => { let transaction = await env.site.database.Transaction() let link_code - let nodemailer_noreply, noreply_from, noreply_signature + let nodemailer, noreply_from, noreply_signature let given_names, family_name try { // initialize env.session_key, set cookie in env.response @@ -51,13 +51,7 @@ return async env => { {password, link_code, expires: expires.getTime()} ) - nodemailer_noreply = nodemailer.createTransport( - await ( - await ( - await transaction.get({}) - ).get('nodemailer') - ).get_json('noreply') - ) + nodemailer = await get_nodemailer(env, transaction, 'noreply') let globals = await get_globals(env, transaction) site_url = await globals.get_json('site_url') noreply_from = await globals.get_json('noreply_from') @@ -75,7 +69,7 @@ return async env => { let name = family_name.length ? `${given_names} ${family_name}` : given_names - await nodemailer_noreply.sendMail( + await nodemailer.sendMail( { from: noreply_from, to: `${name} <${email}>`, diff --git a/api/account/sign_up/send_email_verification_link.json.jst b/api/account/sign_up/send_email_verification_link.json.jst index 50e40e0..0f60056 100644 --- a/api/account/sign_up/send_email_verification_link.json.jst +++ b/api/account/sign_up/send_email_verification_link.json.jst @@ -1,9 +1,9 @@ let crypto = require('crypto') -let nodemailer = require('nodemailer') let XDate = require('xdate') return async env => { let get_globals = await _require('/_lib/get_globals.jst') + let get_nodemailer = await _require('/_lib/get_nodemailer.jst') let get_session = await _require('/_lib/get_session.jst') let post_request = await _require('/_lib/post_request.jst') let Problem = await _require('/_lib/Problem.jst') @@ -24,7 +24,7 @@ return async env => { let transaction = await env.site.database.Transaction() let link_code - let nodemailer_noreply, site_url, noreply_from, noreply_signature + let nodemailer, site_url, noreply_from, noreply_signature let given_names, family_name try { // initialize env.session_key, set cookie in env.response @@ -57,13 +57,7 @@ return async env => { {link_code, expires: expires.getTime()} ) - nodemailer_noreply = nodemailer.createTransport( - await ( - await ( - await transaction.get({}) - ).get('nodemailer') - ).get_json('noreply') - ) + nodemailer = await get_nodemailer(env, transaction, 'noreply') let globals = await get_globals(env, transaction) site_url = await globals.get_json('site_url') noreply_from = await globals.get_json('noreply_from') @@ -81,7 +75,7 @@ return async env => { let name = family_name.length ? `${given_names} ${family_name}` : given_names - await nodemailer_noreply.sendMail( + await nodemailer.sendMail( { from: noreply_from, to: `${name} <${email}>`, diff --git a/api/contact/send_enquiry.json.jst b/api/contact/send_enquiry.json.jst index da3ff60..edf8f55 100644 --- a/api/contact/send_enquiry.json.jst +++ b/api/contact/send_enquiry.json.jst @@ -1,8 +1,8 @@ -let nodemailer = require('nodemailer') let XDate = require('xdate') -return async env => {a +return async env => { let get_globals = await _require('/_lib/get_globals.jst') + let get_nodemailer = await _require('/_lib/get_nodemailer.jst') let get_session = await _require('/_lib/get_session.jst') let post_request = await _require('/_lib/post_request.jst') let Problem = await _require('/_lib/Problem.jst') @@ -32,18 +32,12 @@ return async env => {a ) let transaction = await env.site.database.Transaction() - let nodemailer_contact, contact_from, contact_to + let nodemailer, contact_from, contact_to try { // initialize env.session_key, set cookie in env.response get_session(env, transaction) - nodemailer_contact = nodemailer.createTransport( - await ( - await ( - await transaction.get({}) - ).get('nodemailer') - ).get_json('contact') - ) + nodemailer = await get_nodemailer(env, transaction, 'contact') let globals = await get_globals(env, transaction) contact_from = await globals.get_json('contact_from') contact_to = await globals.get_json('contact_to') @@ -63,7 +57,7 @@ return async env => {a details.company.length ? `Enquiry: ${details.company}` : 'Enquiry' - await nodemailer_contact.sendMail( + await nodemailer.sendMail( { from: contact_from, to: contact_to, diff --git a/api/feedback.json.jst b/api/feedback.json.jst index 79a26bd..2be476d 100644 --- a/api/feedback.json.jst +++ b/api/feedback.json.jst @@ -1,9 +1,9 @@ -let nodemailer = require('nodemailer') let XDate = require('xdate') return async env => { - let post_request = await _require('/_lib/post_request.jst') + let get_nodemailer = await _require('/_lib/get_nodemailer.jst') let get_session = await _require('/_lib/get_session.jst') + let post_request = await _require('/_lib/post_request.jst') await post_request( // env @@ -21,18 +21,12 @@ return async env => { ) let transaction = await env.site.database.Transaction() - let nodemailer_feedback, feedback_from, feedback_to + let nodemailer, feedback_from, feedback_to try { // initialize env.session_key, set cookie in env.response await get_session(env, transaction) - nodemailer_feedback = nodemailer.createTransport( - await ( - await ( - await transaction.get({}) - ).get('nodemailer') - ).get_json('feedback') - ) + nodemailer = await get_nodemailer(env, transaction, 'feedback') let globals = await get_globals(env, transaction) feedback_from = await globals.get_json('feedback_from') feedback_to = await globals.get_json('feedback_to') @@ -44,7 +38,7 @@ return async env => { throw error } - await nodemailer_feedback.sendMail( + await nodemailer.sendMail( { from: feedback_from, to: feedback_to, -- 2.34.1