From 6272ec0f4788c0feb4605f05d58289a6226774ab Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Mon, 30 Sep 2019 12:08:16 +0200 Subject: [PATCH] use matching service to find matches --- app/services/notificationService.js | 37 ++++++++--------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/app/services/notificationService.js b/app/services/notificationService.js index f7500af..52d171a 100644 --- a/app/services/notificationService.js +++ b/app/services/notificationService.js @@ -1,7 +1,5 @@ "use strict"; -const { - findSearchRequestsForRealEstate -} = require("../helpers/db/searchRequest"); +const { matchRealEstates } = require("../services/searchMatchService"); const { generateNotificationEmail, generateNewSearchRequestEmail @@ -9,39 +7,24 @@ const { const { sendEmail } = require("../services/emailService"); const notifyForNewRealEstates = async newRealEstates => { - const matches = {}; - const asyncSearchActions = []; - for (const realEstate of newRealEstates) { - const searchRequestsPromise = findSearchRequestsForRealEstate(realEstate); - - asyncSearchActions.push(searchRequestsPromise); - searchRequestsPromise.then(searchRequests => { - for (const searchRequest of searchRequests) { - const { id } = searchRequest; - if (!matches[id]) { - matches[id] = { - searchRequest, - realEstates: [] - }; - } - matches[id].realEstates.push(realEstate); - } - }); - } - - await Promise.all(asyncSearchActions); - + const matches = await matchRealEstates(newRealEstates); const searchRequestsToNotify = Object.keys(matches); + const asyncSendEmailActions = []; for (const id of searchRequestsToNotify) { const { searchRequest } = matches[id]; const { email } = searchRequest; const allMatchingRealEstates = matches[id].realEstates || []; const emailContent = generateNotificationEmail(allMatchingRealEstates, id); - const res = await sendEmail(email, "Nove nekretnine", emailContent); - console.log("Email sent, result :", res); + const sendEmailPromise = sendEmail(email, "Nove nekretnine", emailContent); + asyncSendEmailActions.push(sendEmailPromise); + sendEmailPromise + .then(res => console.log(res)) + .catch(err => console.log(err)); } + + await Promise.all(asyncSendEmailActions); }; const notifyForNewSearchRequest = async searchRequest => {