From 6ae65d6f0f8bafc6bbc868bf88bf41669f9322cb Mon Sep 17 00:00:00 2001 From: Adolfo Reyna Date: Thu, 16 Sep 2021 20:47:38 -0700 Subject: [PATCH] notifications on bookmarks --- notifications.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/notifications.js b/notifications.js index 072ed32..066913c 100644 --- a/notifications.js +++ b/notifications.js @@ -22,11 +22,53 @@ const Notifications = { console.log("Message sent: %s", info.messageId); }, + async yourBookmarkedPostGotAComment(post, whoPostedId, message){ + const DB = await DBGetter.getDB; + let subscribedPromise = post.bookmarks.map((profileid)=>{ + return DB.getProfileCache(profileid); + }); + let subscribed = await Promise.all(subscribedPromise); + let usersPromise = subscribed.map((profile)=>{ + return DB.getUsernameByIdCache(profile.userid); + }); + let users = await Promise.all(usersPromise); + const senderProfile = await DB.getProfileCache(whoPostedId); + const postPprofile = await DB.getProfileCache(post.profileid); + users.forEach((user, index)=>{ + let profile = subscribed[index]; + if(profile._id == senderProfile._id) return 0; + let subject = senderProfile.profile.firstName + " commented on the post you follow"; + let html = ` +

Hello ${profile.profile.firstName},

+ +

One of the post you bookmarked has a new comment:

+ +
+

${post.content}

+
+
— ${postPprofile.profile.firstName} ${postPprofile.profile.lastName}
+ +

Comment:

+ +
+

${message}

+
+
— ${senderProfile.profile.firstName} ${senderProfile.profile.lastName}
+ +

Check it on the site

+ +

Blessings

+ +`; + this.sendEmail(user, subject, html) + }) + }, async youGotANewPostComment(postId, whoPostedId, message){ const DB = await DBGetter.getDB; const post = await DB.getPost(postId) if(post.bookmarks){ //send notification to boorkmaked profiles + this.yourBookmarkedPostGotAComment(post, whoPostedId, message) } const profile = await DB.getProfileCache(post.profileid); if(profile.isCourse) return 0; //Course owners do not need to receive notifs @@ -70,6 +112,7 @@ const Notifications = { const senderProfile = await DB.getProfileCache(whoPostedId); users.forEach((user, index)=>{ let profile = subscribed[index]; + if(profile._id == senderProfile._id) return 0; let subject = senderProfile.profile.firstName + " posted on one of the groups you follow"; let html = `

Hello ${profile.profile.firstName},