Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions Backend/Routes/SessionRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const express = require("express");
const createSession = require("../controller/sessionController");
const checkForLogin = require("../middleware/AuthMiddleware");

const router = express.Router();

router.use(checkForLogin);

router.post("/createSession",(req, res) => {
if (!req.isTA) {
return res.status(401).send("Only Teaching assistan can create Sessions");
}

createSession(req,res);
});

module.exports = router;
4 changes: 2 additions & 2 deletions Backend/Routes/userRoute.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const express = require("express");
const {loginUser,registerUser} = require("../controller/userController")
const {loginUser,registerUser, logoutUser} = require("../controller/userController")

const router = express.Router();

router.post("/register",registerUser);
router.post("/login",loginUser);
router.get("/logout");
router.get("/logout",logoutUser);



Expand Down
2 changes: 2 additions & 0 deletions Backend/app.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
const express = require("express");
const connectionDb = require("./config/db");
const userRoutes = require("./Routes/userRoute");
const sessionRoute = require("./Routes/SessionRoute");

const app = express();

app.use(express.json());
app.use("/api/user",userRoutes);
app.use("api/session",sessionRoute)

app.get("/",function(req,res){
res.send("Hello world!");
Expand Down
24 changes: 24 additions & 0 deletions Backend/controller/sessionController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const mongoose = require("mongoose");
const userSessionModel = require("../Models/userSessioModel");

const createSession = async (req, res) => {
const sessionKey = Math.floor(100000 + Math.random() * 900000);

const data = await userSessionModel.find({ host: req.user.name });

const sessionId = data.length === 0 ? 1 : data.length + 1;

const createdSession = await userSessionModel.create({
SessionId: sessionId,
host: req.user.name,
duration: req.body.duration,
key: sessionKey,
participants: req.body.participants,
startTime: req.body.startTime,
endTime: req.body.endTime,
});

res.send(createdSession);
};

module.exports = createSession;
2 changes: 1 addition & 1 deletion Backend/controller/userController.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ const logoutUser = async (req,res) =>{
return res.status(201).send("Succesfull logged Out")
}

module.exports = {loginUser,registerUser};
module.exports = {loginUser,registerUser,logoutUser};
35 changes: 35 additions & 0 deletions Backend/middleware/AuthMiddleware.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
const jwt = require("jsonwebtoken");
const userModel = require("../Models/userModel")
require("dotenv").config();


const checkForLogin = async function(req,res,next){

const token = req.cookies.token;

if(!token){
return res.status(401).send("yep we errored in");
}

try{
const decoded = jwt.verify(token,process.env.JWT_SECRET_KEY);

const user = await userModel.findOne({email : decoded.email});

if(!user){
return res.status(401).send("Some error occured");
}

req.user =user;
req.isTA = user.role === "Teaching Assistant";
next();

}
catch(err){
res.status(401).send("Some error Occured");
}


}

module.exports = checkForLogin;