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
1 change: 1 addition & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@ module.exports = {
testEnvironmentOptions: {
url: 'http://localhost:5174', // replace with your test URL
},
testEnvironment: 'node',
};
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"serve": "vite preview",
"vite": "vite",
"server": "node server/server.js",
"test": "vitest",
"test": "NODE_ENV=test vitest",
"coverage": "vitest run --coverage"
},
"license": "MIT",
Expand Down Expand Up @@ -58,6 +58,7 @@
"eslint-plugin-vue": "^8.7.1",
"jest": "^29.5.0",
"jsdom": "^21.1.0",
"sinon": "^15.0.1",
"supertest": "^6.3.3",
"typescript": "^4.9.5",
"vite": "^4.1.4",
Expand Down
11 changes: 5 additions & 6 deletions server/controllers/accountController.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ accountController.loginWithoutCookie = (req, res, next) => {
// showing the logged in user's projects before the mounting
// of the home page
accountController.userProjects = (req, res, next) => {
Users.findOne({username: res.locals.username})
.then(data => {
Users.findOne({ username: res.locals.username })
.then((data) => {
res.locals.userProjects = data.project_ids;
return next();
})
Expand All @@ -59,7 +59,7 @@ accountController.userProjects = (req, res, next) => {
message: `could not find projects for user`,
});
});
}
};

// accountController.verifyUser = (req, res, next) => {
// // write code here
Expand All @@ -82,17 +82,16 @@ accountController.userProjects = (req, res, next) => {
accountController.findUser = (req, res, next) => {
// write code here
// const { username } = req.body;
Users.find({ })
Users.find({})
.then((data) => {
console.log(data)
res.locals.username = data;
return next();
})
.catch((err) => {
// if (err.message === `Username Doesn't Exist`) res.redirect("/signup");
return next({
log: err,
error: `error found in userController.verifyUser`,
error: `error found in userController.findUser`,
});
});
};
Expand Down
16 changes: 11 additions & 5 deletions server/controllers/authController.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,40 @@ const authController = {};

authController.authenticate = (req, res, next) => {
try {
// console.log('process.env.NODE_ENV', process.env.NODE_ENV);
console.log('INSIDE authController.authenticate');
const { ssid } = req.cookies;
//decoded becomes {id,username}
const decoded = jwt.verify(ssid, privateKey);
res.locals.username = decoded.username;
res.locals.id = decoded.id;
console.log('res.locals.username from decoded', res.locals.username)
console.log('res.locals.username from decoded', res.locals.username);
// res.append('Access-Control-Allow-Origin', ['localhost:5173'])
// res.locals.userInfo = decoded;
console.log('INSIDE authController.authenticate 2');
return next();
// res.status(200).json(decoded);
} catch (err) {
return next(err);
return next({
log: `authController.authenticate failed: ${err}`,
message: `Testing123, hi Sean`,
});
}
};

authController.sign = (req, res, next) => {
console.log('res.locals', res.locals)
console.log('res.locals', res.locals);
try {
const { username, id } = res.locals;
const token = jwt.sign(
{
username,
id
id,
},
privateKey,
{ expiresIn: '6h' }
);
console.log(token)
console.log(token);
res.locals.token = token;
return next();
} catch (err) {
Expand Down
55 changes: 29 additions & 26 deletions server/controllers/projectController.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,34 @@ const projectController = {};
// already exists
// if not, create a project; if so, update the project under that name with req.body.projectObject
projectController.saveProject = (req, res, next) => {
console.log('res.locals.username in saveProject', res.locals.username);
console.log('INSIDE projectController.saveProject');
console.log(
'res.locals.username in projectController.saveProject: ',
res.locals.username
);
const { project_name, projectObject } = req.body;
Project.findOne({ project_name }).then(data => {
console.log('project_name in projectController.saveProject: ', project_name);
console.log(
'projectObject in projectController.saveProject: ',
projectObject
);
Project.findOne({ project_name }).then((data) => {
if (!data) {
console.log('making new project');
Project.create({
project_name,
projectObject,
projectOwner: res.locals.username
projectOwner: res.locals.username,
})
.then(data => {
console.log('data.projectObject in saveProject', data.projectObject);
.then((data) => {
res.locals.newProject = data.projectObject;
res.locals.projectName = data.project_name;
return next();
})
.catch(err => {
.catch((err) => {
next({
log: `projectController.saveProject failed, ${err}`,
message: `Can't save new project!`
message: `Can't save new project!`,
});
});
} else {
Expand All @@ -35,15 +43,15 @@ projectController.saveProject = (req, res, next) => {
{ project_name },
{ projectObject: req.body.projectObject }
)
.then(data => {
.then((data) => {
res.locals.newProject = data.projectObject;
res.locals.projectName = data.project_name;
return next();
})
.catch(err => {
.catch((err) => {
next({
log: `projectController.saveProject failed, ${err}`,
message: `Can't update project!`
message: `Can't update project!`,
});
});
}
Expand All @@ -53,42 +61,38 @@ projectController.saveProject = (req, res, next) => {
// updates project_ids of of User who is saving a project
// if it already exists in their projects array, it is not added
projectController.userQuery = (req, res, next) => {
console.log('projectController.userQuery');
User.findOneAndUpdate(
{ username: res.locals.username },
{ $addToSet: { project_ids: res.locals.projectName } },
{ new: true }
)
.then(data => {
console.log('user projects', data.project_ids)
.then((data) => {
res.locals.user = data;
return next();
})
.catch(err => {
.catch((err) => {
next({
log: `projectController.userQuery failed, ${err}`,
message: `user already exists!`
message: `user already exists!`,
});
});
};

// for retrieving projects ('open project' on frontend)
projectController.getProject = (req, res, next) => {
console.log('In getProject controller')
console.log('Project Name',req.body.project_name )
console.log('Username',res.locals.username )
Project.findOne({
project_name: req.body.project_name,
projectOwner: res.locals.username
projectOwner: res.locals.username,
})
.then(data => {

.then((data) => {
res.locals.project = data.projectObject;
return next();
})
.catch(err => {
.catch((err) => {
next({
log: `projectController.getProject failed, ${err}`,
message: `Can't find project!`
message: `Can't find project!`,
});
});
};
Expand All @@ -98,16 +102,15 @@ projectController.findProject = (req, res, next) => {
// write code here
// const { username } = req.body;
Project.find({})
.then(data => {
console.log(data);
.then((data) => {
res.locals.username = data;
return next();
})
.catch(err => {
.catch((err) => {
// if (err.message === `Username Doesn't Exist`) res.redirect("/signup");
return next({
log: err,
error: `error found in userController.verifyUser`
error: `error found in userController.verifyUser`,
});
});
};
Expand Down
10 changes: 3 additions & 7 deletions server/routes/accountRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,8 @@ accountRouter.get(
}
);

accountRouter.get(
'/logout',
cookieController.deleteCookie,
(req, res) => {
return res.sendStatus(200);
}
);
accountRouter.get('/logout', cookieController.deleteCookie, (req, res) => {
return res.sendStatus(200);
});

module.exports = accountRouter;
9 changes: 5 additions & 4 deletions server/routes/projectRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,21 @@ projectRouter.post(
authController.authenticate,
projectController.getProject,
(req, res) => {
console.log('testing route')
console.log('testing route');
return res.status(201).json(res.locals.project);
}
)
);

projectRouter.get(
'/find',
projectController.findProject,
// oAuthController.requestGitHubIdentity,
(req, res) => {
console.log('in find');
return res.status(200).json(res.locals.username);
return res
.status(200)
.json({ hello: test, 'res.locals.usename': res.locals.username });
}
);


module.exports = projectRouter;
9 changes: 4 additions & 5 deletions server/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,18 @@ const projectRouter = require('./routes/projectRouter');

// Connecting to MongoDB
const mongoose = require('mongoose');
const myURI =
'mongodb+srv://prevue:prevue123@pvcluster.msrpd4m.mongodb.net/?retryWrites=true&w=majority';
const myURI = process.env.MONGO_URI;
const { MongoClient } = require('mongodb');
mongoose
.connect(myURI, {
// options for the connect method to parse the URI
useNewUrlParser: true,
useUnifiedTopology: true,
// sets the name of the DB that our collections are part of
dbName: 'prevueDB'
dbName: 'prevueDB',
})
.then(() => console.log('Connected to Mongo DB.'))
.catch(err => console.log(err));
.catch((err) => console.log(err));

// Global Middleware
app.use(express.json());
Expand All @@ -56,7 +55,7 @@ app.use((err, req, res, next) => {
const defaultErr = {
log: 'Express error handler caught unknown middleware error',
status: 400,
message: { err: 'An error occurred' }
message: { err: 'An error occurred' },
};
const errorObj = Object.assign({}, defaultErr, err);
console.log(errorObj.log);
Expand Down
10 changes: 5 additions & 5 deletions src/store/state/stateIndex.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,23 @@ const newState: State = {
App: {
componentName: 'App',
children: ['HomeView'],
htmlList: []
htmlList: [],
},
HomeView: {
componentName: 'HomeView',
children: [],
htmlList: []
}
htmlList: [],
},
},
routes: {
HomeView: []
HomeView: [],
},

componentNameInputValue: '',
activeRoute: 'HomeView',
activeComponent: '',
selectedElementList: [],
projectName: 'Unititled-1',
projectName: 'Untitled-1',
componentChildrenMultiselectValue: [],
modalOpen: false,
htmlElements: [],
Expand Down
Loading