-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #92 from UjjwalSaini07/Minor_Enhancement
Finalize the Subscription Section
- Loading branch information
Showing
14 changed files
with
374 additions
and
222 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,49 +2,50 @@ const express = require('express'); | |
const nodemailer = require('nodemailer'); | ||
const cors = require('cors'); | ||
const bodyParser = require('body-parser'); | ||
require("dotenv").config() | ||
const axios = require('axios'); // Import axios for external requests | ||
require("dotenv").config(); | ||
|
||
const app = express(); | ||
const PORT = 5000; // You can change the port if needed | ||
const PORT = 5000; | ||
|
||
app.use(cors()); | ||
app.use(bodyParser.json()); | ||
|
||
// Set up Nodemailer transporter | ||
// Set up Nodemailer | ||
const transporter = nodemailer.createTransport({ | ||
service: 'gmail', // You can use another service like SendGrid or SMTP | ||
service: 'gmail', | ||
auth: { | ||
user: process.env.EMAIL_USER, | ||
user: process.env.EMAIL_USER, | ||
pass: process.env.EMAIL_PASS, | ||
}, | ||
}); | ||
|
||
// GET route for /send-email to avoid "Cannot GET" error in the browser | ||
app.get('/send-email', (req, res) => { | ||
res.send('Email API is running. Use POST /send-email to send an email.'); | ||
}); | ||
// Email sending endpoint | ||
res.send('Email API is running. Use POST /send-email to send an email.'); | ||
}); | ||
|
||
// Email endpoint -1 | ||
app.post('/send-email', (req, res) => { | ||
const { email } = req.body; | ||
|
||
if (!email) { | ||
return res.status(400).json({ success: false, message: 'Email is required' }); | ||
} | ||
|
||
const mailOptions = { | ||
from: '[email protected]', // Your email | ||
to: email, | ||
subject: 'Congratulations! You’ve Successfully Subscribed to Daily Bhagavad Gita Shlokas!', | ||
text: `You have successfully subscribed to daily Bhagavad Gita Shlokas! Congratulations! 🎉 | ||
Get ready to dive deep into the profound wisdom and teachings of the Bhagavad Gita. Each day, you will receive a meaningful Shloka delivered straight to your inbox. These sacred verses will guide you on a spiritual journey, offering insights into life, duty, and inner peace. | ||
Enjoy the daily dose of timeless philosophy and find inspiration from the divine teachings of Lord Krishna. 🌿 | ||
We are excited to have you with us on this path of spiritual growth!` | ||
const mailOptions = { | ||
from: '[email protected]', | ||
to: email, | ||
subject: 'Congratulations! You’ve Successfully Subscribed to Daily Bhagavad Gita Shlokas!', | ||
text: `🎉 Hurray! You've officially subscribed to daily Bhagavad Gita Shlokas! 🌟✨ | ||
Get ready to dive deep into the profound wisdom and teachings of the Bhagavad Gita. Each day, you will receive a meaningful Shloka delivered straight to your inbox. These sacred verses will guide you on a spiritual journey, offering insights into life, duty, and inner peace. | ||
Enjoy the daily dose of timeless philosophy and find inspiration from the divine teachings of Lord Krishna. 🌿 | ||
We are excited to have you with us on this path of spiritual growth!`, | ||
}; | ||
|
||
transporter.sendMail(mailOptions, (error, info) => { | ||
if (error) { | ||
console.error('Error sending email:', error); | ||
|
@@ -55,19 +56,48 @@ We are excited to have you with us on this path of spiritual growth!` | |
}); | ||
}); | ||
|
||
// New route to handle Google Apps Script API endpoint -2 | ||
app.post('/submit-to-google', async (req, res) => { | ||
const { email } = req.body; | ||
|
||
if (!email) { | ||
return res.status(400).json({ success: false, message: 'Email is required' }); | ||
} | ||
|
||
try { | ||
const googleFormData = new URLSearchParams(); | ||
googleFormData.append('email', email); | ||
|
||
const googleApiResponse = await axios.post('https://script.google.com/macros/s/AKfycbxBtwPmMCVNgydtEF3GWwgKQUC0R3Fmzn9k5ecg5OC8Nj5IOll6OKvYACixwhDwVizN/exec', googleFormData, { | ||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' } | ||
}); | ||
|
||
if (googleApiResponse.status !== 200) { | ||
console.error("Google API Error: ", googleApiResponse.data); | ||
return res.status(500).json({ success: false, message: 'Failed to submit to Google API' }); | ||
} | ||
|
||
res.status(200).json({ success: true, message: googleApiResponse.data.message }); | ||
} catch (error) { | ||
console.error("Error submitting to Google API:", error); | ||
res.status(500).json({ success: false, message: 'Google API request failed' }); | ||
} | ||
}); | ||
|
||
// Start the server | ||
app.listen(PORT, () => { | ||
console.log(`Server is running on http://localhost:${PORT}`); | ||
}); | ||
|
||
export default app; | ||
module.exports = app; | ||
|
||
|
||
// TOdo: Basic Code with only post request not having Get Request | ||
// Todo: Code without Google API - Previous Vercel Prod | ||
// const express = require('express'); | ||
// const nodemailer = require('nodemailer'); | ||
// const cors = require('cors'); | ||
// const bodyParser = require('body-parser'); | ||
// require("dotenv").config() | ||
|
||
// const app = express(); | ||
// const PORT = 5000; // You can change the port if needed | ||
|
@@ -79,21 +109,23 @@ export default app; | |
// const transporter = nodemailer.createTransport({ | ||
// service: 'gmail', // You can use another service like SendGrid or SMTP | ||
// auth: { | ||
// user: '[email protected]', | ||
// pass: 'pnot bnpc cfwp wnyx', | ||
// user: process.env.EMAIL_USER, | ||
// pass: process.env.EMAIL_PASS, | ||
// }, | ||
// }); | ||
|
||
// // GET route for /send-email to avoid "Cannot GET" error in the browser | ||
// app.get('/send-email', (req, res) => { | ||
// res.send('Email API is running. Use POST /send-email to send an email.'); | ||
// }); | ||
|
||
// // Email sending endpoint | ||
// app.post('/send-email', (req, res) => { | ||
// const { email } = req.body; | ||
|
||
// // const mailOptions = { | ||
// // from: '[email protected]', // Your email | ||
// // to: email, | ||
// // // subject: 'Subscription Confirmation', | ||
// // text: '', | ||
// // }; | ||
// if (!email) { | ||
// return res.status(400).json({ success: false, message: 'Email is required' }); | ||
// } | ||
|
||
// const mailOptions = { | ||
// from: '[email protected]', // Your email | ||
|
@@ -113,6 +145,7 @@ export default app; | |
// console.error('Error sending email:', error); | ||
// return res.status(500).json({ success: false, message: 'Failed to send email' }); | ||
// } | ||
// console.log('Email sent:', info.response); | ||
// res.status(200).json({ success: true, message: 'Email sent successfully!' }); | ||
// }); | ||
// }); | ||
|
@@ -122,3 +155,5 @@ export default app; | |
// console.log(`Server is running on http://localhost:${PORT}`); | ||
// }); | ||
|
||
// export default app; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.