/** * @swagger * /api/email/notify: * post: * tags: * - Email * summary: Email to user, Phase 2 * consumes: * - application/json * description: Send email via gov notify * produces: [ * "application/json", * "application/xml" * ] * requestBody: * name: Email * description: Email body * required: true * content: * 'application/json': * schema: * $ref: "#/components/schemas/emailBody" * responses: * 405: * description: Failed */ import { consoleLogger, redactSensitive } from "../../../actions/core/logger"; import { isNonEmptyString, sanitizeString } from "../../../actions/core/guards"; import { getPreferredLanguage } from "../../../actions/services/accountService"; export default async function ApiProxy(req, res) { var data = req.body; const emailAddress = sanitizeString(data?.emailAddress); if (!isNonEmptyString(emailAddress)) { return res.status(400).json({ error: "emailAddress is required" }); } data.emailAddress = emailAddress; if (data?.reference === "PEDW-NEW-CASEREF") { try { const prefLang = await getPreferredLanguage(data.emailAddress); const preferredLanguage = prefLang?.value?.[0]?.pinswg_preferredlanguage; if (preferredLanguage === 846040000) { data.templateId = "d2d9d0dc-e5d4-4da5-9156-775521d69c5c"; } } catch (error) { consoleLogger(error); } } var NotifyClient = require("notifications-node-client").NotifyClient; const notifyClient = new NotifyClient(process.env.NOTIFY_API_KEY); //const emailReplyToId = process.env.EMAIL_REPLY_TO_ID; console.log( "///////////////\n Sending email \ns//////////////", redactSensitive(data) ); notifyClient .sendEmail(data.templateId, data.emailAddress, { personalisation: data.personalisation, reference: data.reference // emailReplyToId: emailReplyToId, }) .then((response) => { //console.log("thisis the response", response); return res.status(200).json(data); }) .catch((error) => { consoleLogger(error); return res.status(400).json(error); }); //return res.status(200).json(data); }