Skip to content

Commit

Permalink
solved some minor issues in backend
Browse files Browse the repository at this point in the history
  • Loading branch information
Dushyantbha012 committed Feb 8, 2024
1 parent 9f96426 commit 0005d71
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 53 deletions.
68 changes: 36 additions & 32 deletions Backend-Realm/DataBase/db.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,43 @@
const mongoose = require("mongoose")
const {connectionUrl} = require("../config")
mongoose.connect(connectionUrl)
const mongoose = require("mongoose");
const { connectionUrl } = require("../config");
mongoose.connect(connectionUrl);

const userSchema = new mongoose.Schema({
name:String,
username:{type:String, unique:true},
college:String,
branch:String,
graduationYear:Number,
SID:String,
email:{type:String, unique:true},
rooms:[{
type:mongoose.Schema.Types.ObjectId,
default:[],
ref:"Room"
}],
password:String,
name: String,
username: { type: String, unique: true },
college: String,
branch: String,
graduationYear: Number,
SID: String,
email: { type: String, unique: true },
rooms: [
{ roomId : String,
roomdbId: { type: mongoose.Schema.Types.ObjectId, ref: "Room" },
},
],
password: String,
});

const roomSchema = new mongoose.Schema({
roomId:String,
users:[{
type:mongoose.Schema.Types.ObjectId,
ref:"User",
default : [],
}],
chats:[{
message:String,
author:String,
timeStamp:{type:Date, default:Date.now},
default:[],
}]
})
roomId: String,
users: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "User",
default: [],
},
],
chats: [
{
message: String,
author: String,
timeStamp: { type: Date, default: Date.now },
default: [],
},
],
});

const User = mongoose.model("User",userSchema);
const Room = mongoose.model("Room",roomSchema);
const User = mongoose.model("User", userSchema);
const Room = mongoose.model("Room", roomSchema);

module.exports = {User,Room};
module.exports = { User, Room };
2 changes: 1 addition & 1 deletion Backend-Realm/Socket/socket.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const initializeSocketIO = (server, namespace) => {
}
});
socket.on("sendMessage", async(msgData) => {
const room= await Room.findOneAndUpdate({_id:msgData.roomdbId},{$push:{chats:msgData.chat}}).exec();
const room= await Room.findOneAndUpdate({roomId:msgData.roomId},{$push:{chats:msgData.chat}}).exec();
io.to(msgData.roomId).emit("receiveMessage",msgData.chat);
});
socket.on("disconnect", () => {
Expand Down
23 changes: 12 additions & 11 deletions Backend-Realm/routers/authMiddleware/authMiddleware.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@

const jwt = require("jsonwebtoken")

const authMiddleware = (req,res,next)=>{
const authMiddleware = async(req,res,next)=>{
const authHeader = req.headers.authorization;
console.log(authHeader)
if(!authHeader){
return res.status(403).json({message:"login or signup"});
}
try{
const decoded = jwt.verify(authHeader,"SECRET_KEY");
if(decoded)
{ console.log("userid is",decoded.userId)
req.userId = decoded.userId;
next();
}
else{
res.json("not able to verify")
}
jwt.verify(authHeader,"SECRET_KEY",(err,decoded)=>{
if(err){
res.json({message:"error verifying"})
}
else{

req.userId = decoded.userId;
next();
}
});

}
catch(err){
return res.status(403).json({message:"authentication failed"});
Expand Down
19 changes: 13 additions & 6 deletions Backend-Realm/routers/chatRouters/chatRouters.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,21 +45,28 @@ chatRouters.post("/addroom", authMiddleware, async (req, res) => {
chats: [],
users: [req.userId],
};
Room.create(room);
res.json({ message: "Room created" });
});

chatRouters.post("/joinchat", authMiddleware, async (req, res) => {
const dbRoom=await Room.create(room);
const updatedUser = await User.findOneAndUpdate(
{ _id: req.userId,},
{ $addToSet: { rooms: req.body.roomdbId } },
{ $addToSet: { rooms: {roomId:dbRoom.roomId, roomdbId:dbRoom._id} } },
{ new: true }
);
console.log("updated user room is ", updatedUser.rooms);
res.json({ message: "Room created" });
});

chatRouters.post("/joinchat", authMiddleware, async (req, res) => {
const updatedRoom = await Room.findOneAndUpdate(
{ _id: req.body.roomdbId,},
{ $addToSet: { users: req.userId } },
{ new: true }
);
const updatedUser = await User.findOneAndUpdate(
{ _id: req.userId,},
{ $addToSet: { rooms: {roomId:updatedRoom.roomId, roomdbId:updatedRoom._id} } },
{ new: true }
);

res.json({ message: "added to the room" });
});

Expand Down
7 changes: 4 additions & 3 deletions Backend-Realm/routers/userRouters/userRouters.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,17 @@ userRouters.post("/signup", async (req, res) => {
}
const existingUser = await User.findOne({
$or: [
{ userName: reqUser.userName },
{ userName: reqUser.username },
{ email: reqUser.email },
{ $and: [{ college: reqUser.college }, { SID: reqUser.SID }] },
],
});
console.log("existing user is",existingUser)
if(existingUser){
return res.status(410).json({message:"UserName, EMail, SID&College already Taken"});
}
const user = User.create(reqUser);
const token = jwt.sign({userId:user._id},SECRET_KEY)
const user = await User.create(reqUser);
const token = jwt.sign({userId:user._id},SECRET_KEY);
res.json({
message:"User Created Successfully !!!!",
token:token,
Expand Down

0 comments on commit 0005d71

Please sign in to comment.