diff --git a/app/helpers/emailContentGenerator.js b/app/helpers/emailContentGenerator.js
index 2236d02..5f915eb 100644
--- a/app/helpers/emailContentGenerator.js
+++ b/app/helpers/emailContentGenerator.js
@@ -7,7 +7,7 @@ const generateEmailFooter = searchRequestId => {
return `
Ako želite prestati dobijati obavještenja za ovu pretragu,
odjavite ovdje
- Vaš,
Javimi tim`;
+ Vaš,
Kivi tim`;
};
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
};
diff --git a/app/services/notificationService.js b/app/services/notificationService.js
index c81dbcc..7a6c2d5 100644
--- a/app/services/notificationService.js
+++ b/app/services/notificationService.js
@@ -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);
diff --git a/test/searchTest.js b/test/searchTest.js
index ecb705a..3758e1e 100644
--- a/test/searchTest.js
+++ b/test/searchTest.js
@@ -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]);
})();