diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..95945af --- /dev/null +++ b/.env.sample @@ -0,0 +1,10 @@ +PORT = +DB_CONNECTION_SECRET = +JWT_SECRET = + +RAZORPAY_KEY_ID = +RAZORPAY_KEY_SECRET = +RAZORPAY_WEBHOOK_SECRET = + +AWS_ACCESS_KEY = +AWS_SECRET_KEY = \ No newline at end of file diff --git a/package.json b/package.json index 6aaa2e2..2106ab6 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ }, "keywords": [ "nodejs", + "mongodb", + "express", "javascript" ], "author": "Akshay Saini", diff --git a/src/app.js b/src/app.js index df39f0f..e19177c 100644 --- a/src/app.js +++ b/src/app.js @@ -1,14 +1,13 @@ const express = require("express"); const connectDB = require("./config/database"); -const app = express(); const cookieParser = require("cookie-parser"); const cors = require("cors"); const http = require("http"); - -require("dotenv").config(); +const { PORT } = require("./config/config"); require("./utils/cronjob"); +const app = express(); app.use( cors({ origin: "http://localhost:5173", @@ -23,8 +22,8 @@ const profileRouter = require("./routes/profile"); const requestRouter = require("./routes/request"); const userRouter = require("./routes/user"); const paymentRouter = require("./routes/payment"); -const initializeSocket = require("./utils/socket"); const chatRouter = require("./routes/chat"); +const initializeSocket = require("./utils/socket"); app.use("/", authRouter); app.use("/", profileRouter); @@ -39,7 +38,7 @@ initializeSocket(server); connectDB() .then(() => { console.log("Database connection established..."); - server.listen(process.env.PORT, () => { + server.listen(PORT, () => { console.log("Server is successfully listening on port 7777..."); }); }) diff --git a/src/config/config.js b/src/config/config.js new file mode 100644 index 0000000..2a13115 --- /dev/null +++ b/src/config/config.js @@ -0,0 +1,14 @@ +require("dotenv").config(); + +module.exports = { + PORT: process.env.PORT, + DB_CONNECTION_SECRET: process.env.DB_CONNECTION_SECRET, + JWT_SECRET: process.env.JWT_SECRET, + + RAZORPAY_KEY_ID: process.env.RAZORPAY_KEY_ID, + RAZORPAY_KEY_SECRET: process.env.RAZORPAY_KEY_SECRET, + RAZORPAY_WEBHOOK_SECRET: process.env.RAZORPAY_WEBHOOK_SECRET, + + AWS_ACCESS_KEY: process.env.AWS_ACCESS_KEY, + AWS_SECRET_KEY: process.env.AWS_SECRET_KEY, +}; diff --git a/src/config/database.js b/src/config/database.js index 338986e..949422b 100644 --- a/src/config/database.js +++ b/src/config/database.js @@ -1,8 +1,8 @@ const mongoose = require("mongoose"); +const { DB_CONNECTION_SECRET } = require("./config"); const connectDB = async () => { - console.log(process.env.DB_CONNECTION_SECRET); - await mongoose.connect(process.env.DB_CONNECTION_SECRET); + await mongoose.connect(DB_CONNECTION_SECRET); }; module.exports = connectDB; diff --git a/src/middlewares/auth.js b/src/middlewares/auth.js index 37b49b3..ca4b565 100644 --- a/src/middlewares/auth.js +++ b/src/middlewares/auth.js @@ -1,5 +1,6 @@ const jwt = require("jsonwebtoken"); const User = require("../models/user"); +const { JWT_SECRET } = require("../config/config"); const userAuth = async (req, res, next) => { try { @@ -8,7 +9,7 @@ const userAuth = async (req, res, next) => { return res.status(401).send("Please Login!"); } - const decodedObj = await jwt.verify(token, process.env.JWT_SECRET); + const decodedObj = await jwt.verify(token, JWT_SECRET); const { _id } = decodedObj; @@ -24,6 +25,4 @@ const userAuth = async (req, res, next) => { } }; -module.exports = { - userAuth, -}; +module.exports = { userAuth }; diff --git a/src/models/user.js b/src/models/user.js index 5e3a7af..e6019b8 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -2,6 +2,7 @@ const mongoose = require("mongoose"); const validator = require("validator"); const jwt = require("jsonwebtoken"); const bcrypt = require("bcrypt"); +const { JWT_SECRET } = require("../config/config"); const userSchema = new mongoose.Schema( { @@ -83,7 +84,7 @@ const userSchema = new mongoose.Schema( userSchema.methods.getJWT = async function () { const user = this; - const token = await jwt.sign({ _id: user._id }, "DEV@Tinder$790", { + const token = await jwt.sign({ _id: user._id }, JWT_SECRET, { expiresIn: "7d", }); diff --git a/src/routes/payment.js b/src/routes/payment.js index e323aab..b084e5d 100644 --- a/src/routes/payment.js +++ b/src/routes/payment.js @@ -8,6 +8,7 @@ const { membershipAmount } = require("../utils/constants"); const { validateWebhookSignature, } = require("razorpay/dist/utils/razorpay-utils"); +const { RAZORPAY_KEY_ID, RAZORPAY_WEBHOOK_SECRET } = require("../config/config"); paymentRouter.post("/payment/create", userAuth, async (req, res) => { try { @@ -42,7 +43,7 @@ paymentRouter.post("/payment/create", userAuth, async (req, res) => { const savedPayment = await payment.save(); // Return back my order details to frontend - res.json({ ...savedPayment.toJSON(), keyId: process.env.RAZORPAY_KEY_ID }); + res.json({ ...savedPayment.toJSON(), keyId: RAZORPAY_KEY_ID }); } catch (err) { return res.status(500).json({ msg: err.message }); } @@ -57,7 +58,7 @@ paymentRouter.post("/payment/webhook", async (req, res) => { const isWebhookValid = validateWebhookSignature( JSON.stringify(req.body), webhookSignature, - process.env.RAZORPAY_WEBHOOK_SECRET + RAZORPAY_WEBHOOK_SECRET ); if (!isWebhookValid) { diff --git a/src/utils/razorpay.js b/src/utils/razorpay.js index 5e2665f..6dce75b 100644 --- a/src/utils/razorpay.js +++ b/src/utils/razorpay.js @@ -1,8 +1,9 @@ const Razorpay = require("razorpay"); +const { RAZORPAY_KEY_ID, RAZORPAY_KEY_SECRET } = require("../config/config"); var instance = new Razorpay({ - key_id: process.env.RAZORPAY_KEY_ID, - key_secret: process.env.RAZORPAY_KEY_SECRET, + key_id: RAZORPAY_KEY_ID, + key_secret: RAZORPAY_KEY_SECRET, }); module.exports = instance; diff --git a/src/utils/sesClient.js b/src/utils/sesClient.js index 761232f..a166928 100644 --- a/src/utils/sesClient.js +++ b/src/utils/sesClient.js @@ -1,12 +1,13 @@ const { SESClient } = require("@aws-sdk/client-ses"); +const { AWS_ACCESS_KEY, AWS_SECRET_KEY } = require("../config/config"); // Set the AWS Region. const REGION = "ap-south-1"; // Create SES service object. const sesClient = new SESClient({ region: REGION, credentials: { - accessKeyId: process.env.AWS_ACCESS_KEY, - secretAccessKey: process.env.AWS_SECRET_KEY, + accessKeyId: AWS_ACCESS_KEY, + secretAccessKey: AWS_SECRET_KEY, }, });