modify notification email subject

This commit is contained in:
Bilal Catic
2019-10-11 23:07:45 +02:00
parent c0cbaf5b73
commit 0a7aaec4c6
3 changed files with 46 additions and 24 deletions

View File

@@ -7,7 +7,7 @@ const generateEmailFooter = searchRequestId => {
return `<div>Ako želite prestati dobijati obavještenja za ovu pretragu, <a href="${APP_URL}/odjava/${searchRequestId}">odjavite ovdje</a></div>
<div>Ako želite pogledati ili promijeniti uslove za ovu pretragu, <a href="${APP_URL}/pregled/${searchRequestId}">pogledajte ovdje</a></div>
<br/>
<strong>Vaš,<br/>Javimi tim</strong>`;
<strong>Vaš,<br/>Kivi tim</strong>`;
};
const generateRealEstateLinks = realEstates => {
@@ -82,7 +82,32 @@ const generateNewSearchRequestEmail = (searchRequest, matchingRealEstates) => {
${emailFooter}`;
};
const generateEmailSubject = (numberOfRealEstates, singleRealEstateTitle) => {
if (numberOfRealEstates === 1) {
return `Kivi: ${singleRealEstateTitle}`;
}
const leastSignificantDigit = numberOfRealEstates % 10;
const numberWithoutLastDigit = Math.floor(numberOfRealEstates / 10);
const secondLeastSignificantDigit = numberWithoutLastDigit % 10;
if (leastSignificantDigit === 1 && secondLeastSignificantDigit !== 1) {
return `Kivi : ${numberOfRealEstates} nova nekretnina`;
}
if (
leastSignificantDigit >= 2 &&
leastSignificantDigit <= 4 &&
secondLeastSignificantDigit !== 1
) {
return `Kivi: ${numberOfRealEstates} nove nekretnine`;
}
return `Kivi: ${numberOfRealEstates} novih nekretnina`;
};
module.exports = {
generateNotificationEmail,
generateNewSearchRequestEmail
generateNewSearchRequestEmail,
generateEmailSubject
};

View File

@@ -5,7 +5,8 @@ const {
} = require("../services/searchMatchService");
const {
generateNotificationEmail,
generateNewSearchRequestEmail
generateNewSearchRequestEmail,
generateEmailSubject
} = require("../helpers/emailContentGenerator");
const { sendEmail } = require("../services/emailService");
@@ -25,7 +26,7 @@ const notifyForNewSearchRequest = async searchRequest => {
matchingRealEstates
);
const { email } = searchRequest;
await sendEmail(email, "Market Alert", emailContent);
await sendEmail(email, "Kivi - novi zahtjev za pretragu", emailContent);
};
const notifyMatches = async matches => {
@@ -36,11 +37,20 @@ const notifyMatches = async matches => {
const { searchRequest } = matches[id];
const { email } = searchRequest;
const allMatchingRealEstates = matches[id].realEstates || [];
const emailContent = generateNotificationEmail(allMatchingRealEstates, id);
if (allMatchingRealEstates.length > 0) {
const emailContent = generateNotificationEmail(
allMatchingRealEstates,
id
);
const emailSubject = generateEmailSubject(
allMatchingRealEstates.length,
allMatchingRealEstates[0].title
);
const sendEmailPromise = sendEmail(email, "Nove nekretnine", emailContent);
asyncSendEmailActions.push(sendEmailPromise);
sendEmailPromise.catch(err => console.log("[Email Sending Failed]", err));
const sendEmailPromise = sendEmail(email, emailSubject, emailContent);
asyncSendEmailActions.push(sendEmailPromise);
sendEmailPromise.catch(err => console.log("[Email Sending Failed]", err));
}
}
await Promise.all(asyncSendEmailActions);

View File

@@ -4,21 +4,8 @@ const {
} = require("../app/services/notificationService");
(async () => {
const realEstate1 = await getRealEstateById(53069); //B.Luka, 149.000 KM, 67m2
const realEstate2 = await getRealEstateById(53180); //B.Luka, 70.000 KM, 24m2
const realEstate1 = await getRealEstateById(83985);
const realEstate2 = await getRealEstateById(83984);
const realEstate3 = await getRealEstateById(53067); //Grbavica, 109.500 KM, 51m2
const realEstate4 = await getRealEstateById(53077); //alipašino, 66.000 KM, 32.58 m2
const realEstate5 = await getRealEstateById(53080); //Tuzla, - KM, 47,1 m2
const realEstate6 = await getRealEstateById(53646); //Tuzla, 73.500 KM, 53m2
notifyForNewRealEstates([
realEstate1,
realEstate2,
realEstate3,
realEstate4,
realEstate5,
realEstate6
]);
notifyForNewRealEstates([realEstate1]);
})();