Add /_lib/get_nodemailer.jst
authorNick Downing <nick@ndcode.org>
Sun, 23 Jan 2022 08:43:18 +0000 (19:43 +1100)
committerNick Downing <nick@ndcode.org>
Sun, 23 Jan 2022 22:37:46 +0000 (09:37 +1100)
_lib/get_nodemailer.jst [new file with mode: 0644]
api/account/password_reset.json.jst
api/account/sign_up/send_email_verification_link.json.jst
api/contact/send_enquiry.json.jst
api/feedback.json.jst

diff --git a/_lib/get_nodemailer.jst b/_lib/get_nodemailer.jst
new file mode 100644 (file)
index 0000000..18a568c
--- /dev/null
@@ -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)
+  )
+}
index 080a97b..54eff78 100644 (file)
@@ -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}>`,
index 50e40e0..0f60056 100644 (file)
@@ -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}>`,
index da3ff60..edf8f55 100644 (file)
@@ -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,
index 79a26bd..2be476d 100644 (file)
@@ -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,