Skip to content
Snippets Groups Projects
Commit c1e57f76 authored by Lucendio's avatar Lucendio
Browse files

[app/server] Add semicolons because it's the right thing to do

parent 807a7009
No related branches found
No related tags found
No related merge requests found
const jwt = require('jsonwebtoken')
const { model: Users } = require('../models/Users')
const jwt = require('jsonwebtoken');
const { model: Users } = require('../models/Users');
const auth = async (req, res, next) => {
try {
// const token = req.header('Authorization').replace('Bearer ', '')
const token = req.cookies['todo-jt']
const token = req.cookies['todo-jt'];
if (token === '') {
res.redirect(401, '/login')
res.redirect(401, '/login');
}
const decoded_token = jwt.verify(token, process.env.JWT_SECRET)
const user = await Users.findOne({ _id: decoded_token._id, 'tokens.token': token })
const decoded_token = jwt.verify(token, process.env.JWT_SECRET);
const user = await Users.findOne({ _id: decoded_token._id, 'tokens.token': token });
if (!user) {
throw new Error()
throw new Error();
}
req.token = token
req.user = user
req.token = token;
req.user = user;
next()
next();
} catch (e) {
res.status(401).send({ error: 'Please login first.' })
res.status(401).send({ error: 'Please login first.' });
}
}
module.exports = auth
};
module.exports = auth;
const express = require('express')
const routes = express.Router()
const express = require('express');
const routes = express.Router();
routes.get('*', async (req, res) => {
try {
res.status(404).send({
error: 'Not Found'
})
});
}
catch (e) {
res.status(500).send
res.status(500).send;
}
})
});
module.exports = routes
module.exports = routes;
const express = require('express')
const { model: ToDos } = require('../models/Todos')
const auth = require('../middlewares/auth')
const routes = express.Router()
const express = require('express');
const { model: ToDos } = require('../models/Todos');
const auth = require('../middlewares/auth');
const routes = express.Router();
routes.post('/todo/add', auth, async (req, res) => {
const newTodo = req.body
const newTodo = req.body;
const fieldsToAdd = Object.keys(newTodo)
const fieldsInModel = ['title', 'description']
const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field))
const fieldsToAdd = Object.keys(newTodo);
const fieldsInModel = ['title', 'description'];
const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field));
if (!isAdditionAllowed) {
return res.status(400).send({ error: 'Invalid fields to Add!' })
return res.status(400).send({ error: 'Invalid fields to Add!' });
}
try {
const todo = await ToDos({
...newTodo,
user: req.user._id,
})
});
await todo.save()
await todo.save();
res.send({ todo })
res.send({ todo });
}
catch (e) {
res.status(400).send(e)
res.status(400).send(e);
}
})
});
routes.post('/todo/list', auth, async (req, res) => {
try {
const todos = await ToDos.find({
user: req.user._id
})
});
res.send(todos)
res.send(todos);
}
catch (e) {
res.status(500).send
res.status(500).send;
}
})
});
routes.patch('/todo/update', auth, async (req, res) => {
const changedTodo = req.body
const fieldsToUpdate = Object.keys(changedTodo)
const fieldsInModel = ['_id', 'important', 'done']
const isUpdateAllowed = fieldsToUpdate.every((field) => fieldsInModel.includes(field))
const changedTodo = req.body;
const fieldsToUpdate = Object.keys(changedTodo);
const fieldsInModel = ['_id', 'important', 'done'];
const isUpdateAllowed = fieldsToUpdate.every((field) => fieldsInModel.includes(field));
if (!isUpdateAllowed) {
return res.status(400).send({ error: 'Invalid fields to update!' })
return res.status(400).send({ error: 'Invalid fields to update!' });
}
const updateObj = {}
const updateObj = {};
if (changedTodo.hasOwnProperty('important')) {
updateObj.important = changedTodo.important
updateObj.important = changedTodo.important;
}
if (changedTodo.hasOwnProperty('done')) {
updateObj.done = changedTodo.done
updateObj.done = changedTodo.done;
}
try {
const todo = await ToDos.findByIdAndUpdate({
_id: changedTodo._id,
user: req.user._id,
},
const todo = await ToDos.findByIdAndUpdate(
{
_id: changedTodo._id,
user: req.user._id,
},
updateObj,
{ new: true, runValidators: true })
{ new: true, runValidators: true }
);
if (!todo) { return res.status(404).send() }
if (!todo) {
return res.status(404).send();
}
res.send(todo)
res.send(todo);
} catch (e) {
res.status(400).send(e)
res.status(400).send(e);
}
})
});
routes.delete('/todo/delete', auth, async (req, res) => {
try {
const todo = await ToDos.findById(req.body._id)
const todo = await ToDos.findById(req.body._id);
await todo.remove()
res.send(todo)
await todo.remove();
res.send(todo);
} catch (e) {
res.status(500).send()
res.status(500).send();
}
})
});
module.exports = routes
module.exports = routes;
const express = require('express')
const { model: Users } = require('../models/Users')
const auth = require('../middlewares/auth')
const routes = express.Router()
const express = require('express');
const { model: Users } = require('../models/Users');
const auth = require('../middlewares/auth');
const routes = express.Router();
// User create (signup)
routes.post('/signup', async (req, res) => {
const newUser = req.body
const fieldsToAdd = Object.keys(newUser)
const fieldsInModel = ['name', 'email', 'password']
const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field))
const newUser = req.body;
const fieldsToAdd = Object.keys(newUser);
const fieldsInModel = ['name', 'email', 'password'];
const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field));
if (!isAdditionAllowed) {
return res.status(400).send({ error: 'Invalid fields to Add!' })
return res.status(400).send({ error: 'Invalid fields to Add!' });
}
try {
const user = await Users(newUser)
const user = await Users(newUser);
await user.save()
await user.save();
res.send({ user })
res.send({ user });
}
catch (e) {
res.status(400).send(e)
res.status(400).send(e);
}
})
});
// check if previously loggeding
routes.post('/init', auth, async (req, res) => {
......@@ -34,14 +34,14 @@ routes.post('/init', auth, async (req, res) => {
httpOnly: true,
};
const { token, user } = req
const { token, user } = req;
if (token && user) {
res.cookie('todo-jt', req.token, cookieOptions).send({ user, token })
res.cookie('todo-jt', req.token, cookieOptions).send({ user, token });
}
} catch (e) {
res.status(400).send()
res.status(400).send();
}
})
});
// Login user
routes.post('/login', async (req, res) => {
......@@ -50,31 +50,32 @@ routes.post('/login', async (req, res) => {
httpOnly: true,
};
const user = await Users.findByCredentials(req.body.email, req.body.password)
const user = await Users.findByCredentials(req.body.email, req.body.password);
const token = await user.generateAuthToken()
const token = await user.generateAuthToken();
res.cookie('todo-jt', token, cookieOptions).send({ user, token })
res.cookie('todo-jt', token, cookieOptions).send({ user, token });
} catch (e) {
res.status(400).send()
res.status(400).send();
}
})
});
//logout user
routes.post('/logout', auth, async (req, res) => {
try {
const { user, token } = req
const { user, token } = req;
user.tokens = user.tokens.filter((t) => t.token !== token)
await user.save()
user.tokens = user.tokens.filter((t) => t.token !== token);
await user.save();
res.clearCookie('todo-jt')
res.clearCookie('todo-jt');
res.send()
res.send();
} catch (e) {
res.status(400).send()
res.status(400).send();
}
})
});
module.exports = routes
module.exports = routes;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment