Added session purge, email templates, email sending, and fixed user bugs

This commit is contained in:
Johnathon Slightham
2021-05-05 02:25:30 -04:00
parent c2ecd89ab0
commit 2ff2689e91
6 changed files with 188 additions and 20 deletions

View File

@@ -16,6 +16,16 @@ let User = require('./user.model');
409 - Account already exists
*/
userRoutes.route('/create').post((req, res) => {
if (!req.body) {
res.status(401).send("Missing body");
return;
} else if (!req.body.email || !req.body.password || !req.body.name) {
res.status(401).send("Missing body");
return;
} else if (req.body.email == "" || req.body.password == "" || req.body.name == "") {
res.status(401).send("Empty fields");
return;
}
console.log(req.body);
let u = new User(req.body);
// TODO: Look for a different encryption method that can scale more easily
@@ -56,22 +66,32 @@ userRoutes.route('/create').post((req, res) => {
401 - Incorrect
*/
userRoutes.route('/login').post((req, res) => {
if (!req.body) {
res.status(401).send("Missing body");
return;
} else if (!req.body.email || !req.body.password) {
res.status(401).send("Missing body");
return;
} else if (req.body.email == "" || req.body.password == "") {
res.status(401).send("Empty fields");
return;
}
User.findOne({ email: req.body.email }, (err, u) => {
if (err) {
console.log(err);
res.status(500);
res.status(500).send("Error logging in user");
return;
}
if (!u) {
res.status(401);
res.status(401).send("No user exists with that email");
return;
}
bcrypt.compare(req.body.password, u.password, (err, result) => {
if (err) {
console.log(err);
res.status(500);
res.status(500).send("Error logging in user");
return;
}
@@ -83,13 +103,13 @@ userRoutes.route('/login').post((req, res) => {
s.save()
.then(() => {
res.json(u);
res.json(s);
})
.catch(() => {
res.status(500);
res.status(500).send("Error logging in user");
});
} else {
res.status(401);
res.status(401).send("Incorrect password");
}
});
@@ -103,15 +123,15 @@ userRoutes.route('/login').post((req, res) => {
400 - No session exists
*/
userRoutes.route('/logout').post((req, res) => {
Session.findOne({ userId: req.body._id }, (err, sess) => {
Session.findOne({sessionId: req.body.sessionId}, (err, sess) => {
if (err) {
console.log(err);
res.status(500);
res.status(500).send("Error logging out");
return;
}
if (!sess) {
res.status(400);
res.status(400).send("No session found");
return;
}
@@ -120,7 +140,7 @@ userRoutes.route('/logout').post((req, res) => {
res.status(201).send("Success deleting session");
})
.catch(() => {
res.status(500);
res.status(500).send("Error logging out");
});
});