From 4d98319e88ae8a373d510eb95bae31ae8c781109 Mon Sep 17 00:00:00 2001 From: Aman KUmar Date: Sun, 26 May 2024 19:05:47 +0530 Subject: [PATCH] added email feature updated sw.js --- functions/index.js | 8 +++++--- public/sw.js | 1 + src/modules/db.js | 6 ++++++ src/modules/sendMail.js | 6 +++--- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/functions/index.js b/functions/index.js index af00522..4f12af7 100644 --- a/functions/index.js +++ b/functions/index.js @@ -7,7 +7,8 @@ dotenv.config() const transporter = nodemailer.createTransport({ service: "gmail", auth: { - // credentials from firebase + // credentials for email sending + // configure gmail or use SMTP for other services user: process.env.EMAIL, pass: process.env.PASSWORD, }, @@ -33,7 +34,8 @@ exports.mail = onRequest( if (request.method !== "POST") { response.status(405).send("Method not allowed") } - const { name, email, message } = request.body + // default values for email of Admin used if not provided + const { name, email = process.env.ADMIN_EMAIL || "cto@rnsit.ac.in", message } = request.body // validate request if (!name || !email || !message) { @@ -47,7 +49,7 @@ exports.mail = onRequest( } const mailOptions = { - from: process.env.EMAIL, + from: process.env.EMAIL_FROM || process.env.EMAIL, to: email, subject: `New Hall Booking request for RNS Halls by ${name}`, text: message, diff --git a/public/sw.js b/public/sw.js index 353b8e0..748bec4 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,6 +1,7 @@ // version development 1.1.0 // halls selection now available ! ! // added email sending feature +// added email to requestee feature self.addEventListener("install", function (e) { e.waitUntil( caches.open("rnsHalls").then(function (cache) { diff --git a/src/modules/db.js b/src/modules/db.js index 56232ac..3f9b765 100644 --- a/src/modules/db.js +++ b/src/modules/db.js @@ -324,6 +324,11 @@ class DBs { } } + async getUser(uid) { + const data = await get(ref(this.db, `users/${uid}/profile`)) + return data.val() + } + enableAdminFeatures() { // Enable notifications and booking requests const q = query(ref(this.db, `notifications/`), limitToLast(15)) @@ -384,6 +389,7 @@ class DBs { if (success) { document.querySelector(`#brq-${snapshot.key}`).remove() toast(`Booking ${data.key} Accepted !`) + this.getUser(data.uid) .then(({ email, displayName }) => sendMail(displayName, `Your Booking Request for RNS Halls has been Approved !`, email)) } else toast("Some Error Occured !") }) } diff --git a/src/modules/sendMail.js b/src/modules/sendMail.js index d715577..7804051 100644 --- a/src/modules/sendMail.js +++ b/src/modules/sendMail.js @@ -2,9 +2,9 @@ * * @param {string?} name user's name * @param {string?} message -// * @param {string} email Email address of the Admin +// * @param {string?} email Email address of the Admin */ -function sendMail(name = "RNSHalls User", message = "", email = "amankrokx@gmail.com") { +function sendMail(name = "RNSHalls User", message = "", email) { // send email if (message === "") { message = `${new Date()}\nNew Hall Booking request for RNS Halls by ${name}\nVisit at https://rnshalls.web.app or https://halls.rnsit.ac.in\n\n RNS Halls` @@ -17,7 +17,7 @@ function sendMail(name = "RNSHalls User", message = "", email = "amankrokx@gmail redirect: "follow", body: JSON.stringify({ name, - email, + email: email || undefined, message, }), }).then((response) => {