working on users having multiple profiles
This commit is contained in:
27
index.js
27
index.js
@@ -22,17 +22,21 @@ const DB = require("./mongoDB.js");
|
||||
// Utilities
|
||||
const getSessionId = function(req){
|
||||
const session_id = req.cookies.session_id || req.query.session_id || req.body.session_id;
|
||||
return session_id
|
||||
return session_id;
|
||||
}
|
||||
const getUserId = function(req){
|
||||
const user_sid = req.cookies.user_sid || req.query.user_sid || req.body.user_sid;
|
||||
return user_sid
|
||||
return user_sid;
|
||||
}
|
||||
const getProfileId = function(req){
|
||||
const profile_id = req.cookies.profile_id || req.query.profile_id || req.body.profile_id;
|
||||
return profile_id;
|
||||
}
|
||||
|
||||
// Definitions
|
||||
const Post = require("./def/post.js")
|
||||
const User = require("./def/user.js");
|
||||
var userRoute = require('./routes/user.js');
|
||||
const Profile = require("./def/profile.js");
|
||||
var profileRoute = require('./routes/profile.js');
|
||||
var postRoute = require('./routes/post.js');
|
||||
|
||||
DB.getDB.then((DB)=>{
|
||||
@@ -41,9 +45,11 @@ DB.getDB.then((DB)=>{
|
||||
const sessionChecker = async (req, res, next) => {
|
||||
const session_id = getSessionId(req);
|
||||
const user_sid = getUserId(req);
|
||||
const profile_id = getProfileId(req);
|
||||
if (session_id && user_sid) {
|
||||
const userInfo = await DB.checkSessionOnDB(session_id, user_sid);
|
||||
req.userInfo = userInfo;
|
||||
req.profileInfo = {_id: profile_id}
|
||||
if(!userInfo) return res.redirect('/login');
|
||||
next();
|
||||
} else {
|
||||
@@ -76,8 +82,8 @@ DB.getDB.then((DB)=>{
|
||||
userid: success.insertedId,
|
||||
profile: profile,
|
||||
}
|
||||
const userObj = new User(user);
|
||||
DB.newProfile(userObj)
|
||||
const userObj = new Profile(user);
|
||||
await DB.newProfile(userObj);
|
||||
return await login(req, res);
|
||||
}
|
||||
res.redirect('/signup');
|
||||
@@ -113,10 +119,15 @@ DB.getDB.then((DB)=>{
|
||||
const doc = await DB.newSession(user._id);
|
||||
res.cookie('user_sid', user._id, cookiesOptions);
|
||||
res.cookie('session_id', doc.insertedId, cookiesOptions);
|
||||
//Chooses the most recent update profile
|
||||
const latestProfile = await DB.latestProfile(user._id);
|
||||
console.log("latestProfile", latestProfile)
|
||||
res.cookie('profile_id', latestProfile._id, cookiesOptions);
|
||||
return res.json({
|
||||
status: "ok",
|
||||
user_sid: user._id,
|
||||
session_id: doc.insertedId
|
||||
session_id: doc.insertedId,
|
||||
profile_id: latestProfile._id
|
||||
});
|
||||
}
|
||||
app.route('/login').get(async (req, res) => {
|
||||
@@ -143,7 +154,7 @@ DB.getDB.then((DB)=>{
|
||||
return logout(req, res);
|
||||
});
|
||||
|
||||
app.use('/user', sessionChecker, userRoute);
|
||||
app.use('/user', sessionChecker, profileRoute);
|
||||
app.use('/post', sessionChecker, postRoute);
|
||||
|
||||
// route for handling 404 requests(unavailable routes)
|
||||
|
||||
Reference in New Issue
Block a user