Add /_lib/get_nodemailer.jst
[ndcode_site.git] / api / account / password_reset.json.jst
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}>`,