From dd26ddb54b341f70963541d5504ea0c42e4bb551 Mon Sep 17 00:00:00 2001 From: akashtiwariG Date: Sun, 12 May 2024 22:21:14 +0530 Subject: [PATCH] changed database from mongo to postgress --- Backend/db/index.js | 63 ++++----------------------------- Backend/db/issue.js | 6 ++-- Backend/index.js | 1 + Backend/middleware/admin.js | 2 +- Backend/routes/admin.js | 29 +++++---------- Backend/routes/administrator.js | 42 ++++++++-------------- 6 files changed, 33 insertions(+), 110 deletions(-) diff --git a/Backend/db/index.js b/Backend/db/index.js index ad66139..c45f7a1 100644 --- a/Backend/db/index.js +++ b/Backend/db/index.js @@ -1,60 +1,9 @@ -const mongoose = require('mongoose'); +const pg = require("pg"); -// Connect to MongoDB +const db = new pg.Client({ + connectionString:"postgresql://week-10_owner:O5aPjGvRTi0X@ep-fancy-cell-a529ozuv.us-east-2.aws.neon.tech/LMS?sslmode=require" +}) -// Define a function to establish MongoDB connection -async function connectToMongoDB() { - try { - // Connect to MongoDB Atlas - await mongoose.connect('mongodb+srv://sanketyelave11:sanket@cluster0.vauajse.mongodb.net/prone', { +db.connect(); - }); - - // Connection successful, log a message - console.log("Connected to MongoDB"); - - // Optionally, you can return the Mongoose connection object for further use - return mongoose.connection; - } catch (error) { - // Connection failed, log the error - console.error("Error connecting to MongoDB:", error); - throw error; // Optionally, rethrow the error for handling elsewhere - } -} -connectToMongoDB() -// Define schemas - -const AdministratorSchema = new mongoose.Schema({ - // Schema definition here - email: String, - password: String, - phonenumber: String -}); - -const AdminSchema = new mongoose.Schema({ - // Schema definition here - email: String, - password: String, - phonenumber: String -}); - - -const issueSchema = new mongoose.Schema({ - // Schema definition here - department: String, - issue: String, - labNo: String, - status: String -}); - - - -const Administrator = mongoose.model('Administrator', AdministratorSchema); -const Admin = mongoose.model('Admin', AdminSchema); -const Issue = mongoose.model('Issue', issueSchema); - -module.exports = { - Administrator, - Admin, - Issue, -} \ No newline at end of file +module.exports = {db}; diff --git a/Backend/db/issue.js b/Backend/db/issue.js index 740aad0..c509c9d 100644 --- a/Backend/db/issue.js +++ b/Backend/db/issue.js @@ -1,14 +1,14 @@ const { Router } = require("express"); -const {Issue} =require("./index"); +const {db} =require("./index"); const router = Router(); router.get('/', async(req,res) => { - const response = await Issue.find({}); + const response = await db.query("SELECT * FROM issues"); console.log(response); res.json({ issue: response }) }) -module.exports = router; +module.exports = router; \ No newline at end of file diff --git a/Backend/index.js b/Backend/index.js index 1cc9f46..e9b0582 100644 --- a/Backend/index.js +++ b/Backend/index.js @@ -21,3 +21,4 @@ app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); }); + diff --git a/Backend/middleware/admin.js b/Backend/middleware/admin.js index 6730d05..07b5162 100644 --- a/Backend/middleware/admin.js +++ b/Backend/middleware/admin.js @@ -18,4 +18,4 @@ function adminMiddleware(req, res, next) { } } -module.exports = adminMiddleware; \ No newline at end of file +module.exports = adminMiddleware; diff --git a/Backend/routes/admin.js b/Backend/routes/admin.js index e65ad92..bf704cf 100644 --- a/Backend/routes/admin.js +++ b/Backend/routes/admin.js @@ -1,23 +1,17 @@ const { Router } = require("express"); -const {Admin,Issue} =require("../db"); +const {db} =require("../db"); const adminMiddleware = require("../middleware/admin"); const router = Router(); const {JWT_SECRET} = require("../config"); const jwt = require("jsonwebtoken"); -// Admin Routes - router.post('/signin', async(req, res) => { // Implement admin signup logic const email = req.body.email; const password = req.body.password; - const phonenumber = req.body.phonenumber - const user = await Admin.find({ - email, - password, - - }) - if(user.length!=0){ + const phonenumber = req.body.phonenumber; + const user = await db.query("SELECT * FROM admins WHERE email =$1",[email]); + if(user[0].length!=0){ const token = jwt.sign({ email },JWT_SECRET); @@ -36,16 +30,9 @@ router.post('/signin', async(req, res) => { router.post('/issue', adminMiddleware, async(req, res) => { // Implement course creation logic - const department = req.body.department; - const issue = req.body.issue; - const labNo = req.body.labNo; - const status = req.body.status; - const newIssue = await Issue.create({ - department:department, - issue:issue, - labNo:labNo, - status:status - }) + const {department,issue,labNo,status} = req.body; + const newIssue = await db.query("INSERT INTO issues (department,issue,labNo,status,newIssue) VALUES ($1,$2,$3,$4)",[{department},{issue},{labNo},{status}]) + console.log(issue); res.json({ message:'Issue created successfully',issueId: newIssue._id @@ -54,7 +41,7 @@ router.post('/issue', adminMiddleware, async(req, res) => { }); router.get('/showIssue', async(req,res) => { - const response = await Issue.find({}); + const response = await db.query("SELECT * FROM issues"); console.log(response); res.json({ issue: response diff --git a/Backend/routes/administrator.js b/Backend/routes/administrator.js index eb924e6..f0b6a69 100644 --- a/Backend/routes/administrator.js +++ b/Backend/routes/administrator.js @@ -1,9 +1,10 @@ const { Router } = require("express"); -const { Admin, Administrator, Issue } = require("../db"); +const { db} = require("../db"); const administratorMiddleware = require("../middleware/administrator"); const router = Router(); const { JWT_SECRET } = require("../config"); const jwt = require("jsonwebtoken"); +const { parseArgs } = require("util"); // Admin Routes router.post('/signin', async (req, res) => { @@ -12,10 +13,7 @@ router.post('/signin', async (req, res) => { const email = req.body.email; const password = req.body.password; const phonenumber = req.body.phonenumber; - const user = await Administrator.find({ - email, - password, - }) + const user = await db.query("SELECT email FROM administrators WHERE email = $1",[email]) if (user.length != 0) { const token = jwt.sign({ email @@ -33,16 +31,8 @@ router.post('/signin', async (req, res) => { router.post('/issue', administratorMiddleware, async (req, res) => { // Implement course creation logic - const department = req.body.department; - const issue = req.body.issue; - const labNo = req.body.labNo; - const status = req.body.status; - const newIssue = await Issue.create({ - department: department, - issue: issue, - labNo: labNo, - status: status - }) + const {department,issue,labNo,status} = req.body; + const newIssue = await db.query("INSERT INTO issues (department,issue,labNo,status) VALUES ($1,$2,$3,$4)",[{department},{issue},{labNo},{status}]) console.log(issue); res.json({ message: 'Issue created successfully', issueId: newIssue._id @@ -51,25 +41,21 @@ router.post('/issue', administratorMiddleware, async (req, res) => { }); router.post('/permission', administratorMiddleware, async (req, res) => { - const email = req.body.email; - const password = req.body.password; - const phonenumber = req.body.phonenumber; - await Admin.create({ - email: email, - password: password, - phonenumber: phonenumber - }) + const a = req.body.email; + const b = req.body.password; + const c = req.body.phonenumber; + console.log(req.body); + await db.query("INSERT INTO admins (email,password,status,phonenumber) VALUES ($1,$2,$3,$4)",[a,b,"admin",c]); res.json({ message: 'Admin created succesfully' }) }) router.delete('/delete/:adminId', administratorMiddleware, async (req, res) => { - await Admin.deleteMany({ - _id: req.params.adminId - }) - const response = await Admin.find({}); + await db.query("DELETE FROM admins WHERE id=$1",req.params.adminId); + + const response = await db.query("SELECT * FROM admins") res.json({ courses: response }) @@ -77,7 +63,7 @@ router.delete('/delete/:adminId', administratorMiddleware, async (req, res) => { }) router.get('/showIssue', async (req, res) => { - const response = await Issue.find({}); + const response = await db.query("SELECT * FROM issues"); console.log(response); res.json({ issue: response