Added formated subject to bulk email

This commit is contained in:
Nedim Uka
2019-07-02 21:49:56 +02:00
parent 7f0b2d299e
commit b79a274f96
8 changed files with 120 additions and 18 deletions

View File

@@ -2,8 +2,10 @@
const dotenv = require('dotenv').config();
const { getRealEstateTypeEnum } = require('./enums');
const { getRegionName, getMunicipalityName } = require('./codes');
const db = require('../models/index');
const { allRERequestByUiid } = require('./db/dbHelper');
var AWS = require('aws-sdk');
const TEMPLATE_NAME = "MarketAlertTemplate"
const TEMPLATE_NAME = "MarketAlertTemplateDevelop"
AWS.config.update({
region: process.env.AMAZON_REGION,
@@ -97,26 +99,78 @@ const sendBulkEmail = async (marketAlerts) => {
try {
destinations = []
groupedEmails = [];
groupedRERequests = [];
let RERequestUuids = marketAlerts.map(marketAlert => marketAlert.request);
// console.log(RERequestUuids)
RERequestUuids = Array.from(new Set(RERequestUuids));
// console.log(RERequestUuids)
RERequestUuids = RERequestUuids.map(marketAlert => {
return { uniqueId: marketAlert }
});
// RERequestUuids = Array.from(new Set(RERequestUuids));
// console.log(RERequestUuids)
// const RERequests = await
const RERequest = await allRERequestByUiid(RERequestUuids);
// const requestDataValues = RERequest.map(RERequest => {
// var formatedRequest = {};
// formatedRequest[RERequest.uniqueId] = {
// realEstateType: RERequest.realEstateType,
// region: RERequest.region,
// municipality: RERequest.municipality
// };
// return formatedRequest;
// })
const requestDataValues = [];
RERequest.forEach(RERequest => {
var formatedRequest = {};
formatedRequest[RERequest.uniqueId] =
requestDataValues[RERequest.uniqueId] = {
realEstateType: RERequest.realEstateType,
region: RERequest.region,
municipality: RERequest.municipality
};
});
// console.log(requestDataValues);
marketAlerts.forEach(marketAlert => {
if (!groupedEmails[marketAlert.email]) {
groupedEmails[marketAlert.email] = [];
groupedEmails[marketAlert.email].push({ url: marketAlert.url, title: marketAlert.title });
} else {
groupedEmails[marketAlert.email].push({ url: marketAlert.url, title: marketAlert.title });
// console.log(marketAlert);
// const RERequest = await currentRERequest(marketAlert.request);
if (!groupedRERequests[marketAlert.request]) {
groupedRERequests[marketAlert.request] = [];
}
// console.log(requestDataValues[marketAlert.request]);
console.log("MarketAlertEmail");
console.log(marketAlert.email);
groupedRERequests[marketAlert.request].push({
url: marketAlert.url,
title: marketAlert.title,
email: marketAlert.email,
requestData: {
realEstateType: requestDataValues[marketAlert.request].realEstateType,
region: requestDataValues[marketAlert.request].region,
municipality: requestDataValues[marketAlert.request].municipality
}
});
});
for (email in groupedEmails) {
for (request in groupedRERequests) {
// {{realestateType}}, {{region}}, {{municipality}}
const url = groupedEmails[email];
let repData = `{ "marketAlertUrl":[${toAWSArray(url)}], "favoriteanimal":"yak" }`
const marketAlert = groupedRERequests[request];
console.log("RequestlertEmail");
console.log(request.email);
console.log(request);
let repData = `{ "marketAlertUrl":[${toAWSArray(marketAlert)}], "realestateType":"${request.realEstateType}", "region":"${request.region}", "municipality":"${request.municipality}" }`
destinations.push({
Destination: {
ToAddresses: [
email
request.email
]
},
ReplacementTemplateData: repData
@@ -124,7 +178,7 @@ const sendBulkEmail = async (marketAlerts) => {
}
console.log("AWS EMAIL : Bulk email replacement data:");
console.log(destinations);
// console.log(destinations);
var params = {
Destinations:
@@ -152,6 +206,7 @@ const sendBulkEmail = async (marketAlerts) => {
}
const toAWSArray = (urlArray) => {
console.log(urlArray);
let arrayString = ""
urlArray.forEach(element => {
const formatetdTitle = element.title.replace(/"/g, "");
@@ -179,8 +234,8 @@ const getNotificationEmailText = () => {
const createMarketAlertEmailTemplate = async () => {
const marketAlertTemplate = {
Template: {
TemplateName: "MarketAlertTemplate",
SubjectPart: "Javi mi obavijest",
TemplateName: TEMPLATE_NAME,
SubjectPart: "Javi mi obavijest: {{realestateType}}, {{region}}, {{municipality}}",
TextPart: getNotificationEmailText(),
HtmlPart: getNotificationEmailHtml()
}