From 084766d0ea0b3727f3e2a321eb3f143e281fb3e3 Mon Sep 17 00:00:00 2001 From: Naida Vatric Date: Mon, 16 Mar 2020 16:13:16 +0100 Subject: [PATCH] Added notification for new ad pusblish and new real estate. --- app/controllers/publishRealEstate.js | 10 +++++++++- app/helpers/emailContentGenerator.js | 19 ++++++++++++++++++- app/services/notificationService.js | 21 ++++++++++++++++++++- 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/app/controllers/publishRealEstate.js b/app/controllers/publishRealEstate.js index eff5175..7e00e3d 100644 --- a/app/controllers/publishRealEstate.js +++ b/app/controllers/publishRealEstate.js @@ -1,7 +1,10 @@ const { findRealEstateByAgencyId } = require("../helpers/db/realEstate"); const { bulkUpsertKiviPhotos } = require("../helpers/db/kiviOriginalAdsPhotos"); const { currentKiviRealEstate } = require("../helpers/url"); - +const { + notifyForNewRealEstates, + notifyForNewAdPublish +} = require("../services/notificationService"); const validate = require("validate.js"); const { @@ -318,6 +321,11 @@ const postPublishInputs = async (req, res) => { await kiviOriginal.save(); + //Calling function to notify real estate owner that ads is published on Kivi page after 1 sec + setTimeout(notifyForNewAdPublish, 1000, realEstate, kiviOriginal); + //Calling function to notify users of new real estate after 2 min + setTimeout(notifyForNewRealEstates, 1000 * 60 * 2, [realEstate]); + res.redirect(nextStepPage); }; diff --git a/app/helpers/emailContentGenerator.js b/app/helpers/emailContentGenerator.js index d201e8f..62e66ba 100644 --- a/app/helpers/emailContentGenerator.js +++ b/app/helpers/emailContentGenerator.js @@ -202,9 +202,26 @@ const generateCheckUpEmail = searchRequest => { ${emailFooter}`; }; +const generateNewAdPublishEmail = (realEstate, numberOfMatchingRequests) => { + return `

${stagingTag}Zdravo

+
Uspješno ste objavili oglas za Vašu nekretninu na Kivi.ba.
+
+
U Kivi bazi trenutno postoji ${numberOfMatchingRequests} zahtjeva za nekretninom kao sto je Vaša.
+
+
Pregledajte Vaš oglas na sljedećem linku: ${realEstate.title}
+
+
Ako želite izmijeniti detalje oglasa, izmjenite ovdje
+
Ako želite izbrisati Vaš oglas iz Kivi baze, izbrišite ovdje
+
+
Hvala na ukazanom povjerenju!
+
+ Vaš,
Kivi tim
`; +}; + module.exports = { generateNotificationEmail, generateNewSearchRequestEmail, generateEmailSubject, - generateCheckUpEmail + generateCheckUpEmail, + generateNewAdPublishEmail }; diff --git a/app/services/notificationService.js b/app/services/notificationService.js index 692effd..bdcdd84 100644 --- a/app/services/notificationService.js +++ b/app/services/notificationService.js @@ -11,7 +11,8 @@ const { generateNotificationEmail, generateNewSearchRequestEmail, generateEmailSubject, - generateCheckUpEmail + generateCheckUpEmail, + generateNewAdPublishEmail } = require("../helpers/emailContentGenerator"); const { findNotNotifiedMatches, @@ -147,9 +148,27 @@ const checkUpNotify = async () => { await Promise.all(asyncSendEmailActions); }; +const notifyForNewAdPublish = async (realEstate, kiviOriginal) => { + // console.log("Real estate:", realEstate); + // console.log("Kivi original:", kiviOriginal); + const email = kiviOriginal.dataValues.email; + const emailSubject = `${stagingTag}Kivi: Uspješno ste objavili oglas!`; + const matches = await matchRealEstates([realEstate]); + + const numberOfMatchingRequests = Object.keys(matches).length; + + const emailContent = generateNewAdPublishEmail( + realEstate, + numberOfMatchingRequests + ); + + await sendEmail(email, emailSubject, emailContent); +}; + module.exports = { notifyForNewRealEstates, notifyForNewSearchRequest, notifyRequestsWithDailyOption, + notifyForNewAdPublish, checkUpNotify };