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 jwt = require('jsonwebtoken');
const { model: Users } = require('../models/Users') const { model: Users } = require('../models/Users');
const auth = async (req, res, next) => { const auth = async (req, res, next) => {
try { try {
// const token = req.header('Authorization').replace('Bearer ', '') // const token = req.header('Authorization').replace('Bearer ', '')
const token = req.cookies['todo-jt'] const token = req.cookies['todo-jt'];
if (token === '') { if (token === '') {
res.redirect(401, '/login') res.redirect(401, '/login');
} }
const decoded_token = jwt.verify(token, process.env.JWT_SECRET) const decoded_token = jwt.verify(token, process.env.JWT_SECRET);
const user = await Users.findOne({ _id: decoded_token._id, 'tokens.token': token }) const user = await Users.findOne({ _id: decoded_token._id, 'tokens.token': token });
if (!user) { if (!user) {
throw new Error() throw new Error();
} }
req.token = token req.token = token;
req.user = user req.user = user;
next() next();
} catch (e) { } 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 express = require('express');
const routes = express.Router() const routes = express.Router();
routes.get('*', async (req, res) => { routes.get('*', async (req, res) => {
try { try {
res.status(404).send({ res.status(404).send({
error: 'Not Found' error: 'Not Found'
}) });
} }
catch (e) { catch (e) {
res.status(500).send res.status(500).send;
} }
}) });
module.exports = routes module.exports = routes;
const express = require('express') const express = require('express');
const { model: ToDos } = require('../models/Todos') const { model: ToDos } = require('../models/Todos');
const auth = require('../middlewares/auth') const auth = require('../middlewares/auth');
const routes = express.Router() const routes = express.Router();
routes.post('/todo/add', auth, async (req, res) => { routes.post('/todo/add', auth, async (req, res) => {
const newTodo = req.body const newTodo = req.body;
const fieldsToAdd = Object.keys(newTodo) const fieldsToAdd = Object.keys(newTodo);
const fieldsInModel = ['title', 'description'] const fieldsInModel = ['title', 'description'];
const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field)) const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field));
if (!isAdditionAllowed) { if (!isAdditionAllowed) {
return res.status(400).send({ error: 'Invalid fields to Add!' }) return res.status(400).send({ error: 'Invalid fields to Add!' });
} }
try { try {
const todo = await ToDos({ const todo = await ToDos({
...newTodo, ...newTodo,
user: req.user._id, user: req.user._id,
}) });
await todo.save() await todo.save();
res.send({ todo }) res.send({ todo });
} }
catch (e) { catch (e) {
res.status(400).send(e) res.status(400).send(e);
} }
}) });
routes.post('/todo/list', auth, async (req, res) => { routes.post('/todo/list', auth, async (req, res) => {
try { try {
const todos = await ToDos.find({ const todos = await ToDos.find({
user: req.user._id user: req.user._id
}) });
res.send(todos) res.send(todos);
} }
catch (e) { catch (e) {
res.status(500).send res.status(500).send;
} }
}) });
routes.patch('/todo/update', auth, async (req, res) => { routes.patch('/todo/update', auth, async (req, res) => {
const changedTodo = req.body const changedTodo = req.body;
const fieldsToUpdate = Object.keys(changedTodo) const fieldsToUpdate = Object.keys(changedTodo);
const fieldsInModel = ['_id', 'important', 'done'] const fieldsInModel = ['_id', 'important', 'done'];
const isUpdateAllowed = fieldsToUpdate.every((field) => fieldsInModel.includes(field)) const isUpdateAllowed = fieldsToUpdate.every((field) => fieldsInModel.includes(field));
if (!isUpdateAllowed) { 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')) { if (changedTodo.hasOwnProperty('important')) {
updateObj.important = changedTodo.important updateObj.important = changedTodo.important;
} }
if (changedTodo.hasOwnProperty('done')) { if (changedTodo.hasOwnProperty('done')) {
updateObj.done = changedTodo.done updateObj.done = changedTodo.done;
} }
try { try {
const todo = await ToDos.findByIdAndUpdate({ const todo = await ToDos.findByIdAndUpdate(
_id: changedTodo._id, {
user: req.user._id, _id: changedTodo._id,
}, user: req.user._id,
},
updateObj, 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) { } catch (e) {
res.status(400).send(e) res.status(400).send(e);
} }
}) });
routes.delete('/todo/delete', auth, async (req, res) => { routes.delete('/todo/delete', auth, async (req, res) => {
try { try {
const todo = await ToDos.findById(req.body._id) const todo = await ToDos.findById(req.body._id);
await todo.remove() await todo.remove();
res.send(todo) res.send(todo);
} catch (e) { } catch (e) {
res.status(500).send() res.status(500).send();
} }
}) });
module.exports = routes
module.exports = routes;
const express = require('express') const express = require('express');
const { model: Users } = require('../models/Users') const { model: Users } = require('../models/Users');
const auth = require('../middlewares/auth') const auth = require('../middlewares/auth');
const routes = express.Router() const routes = express.Router();
// User create (signup) // User create (signup)
routes.post('/signup', async (req, res) => { routes.post('/signup', async (req, res) => {
const newUser = req.body const newUser = req.body;
const fieldsToAdd = Object.keys(newUser) const fieldsToAdd = Object.keys(newUser);
const fieldsInModel = ['name', 'email', 'password'] const fieldsInModel = ['name', 'email', 'password'];
const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field)) const isAdditionAllowed = fieldsToAdd.every((field) => fieldsInModel.includes(field));
if (!isAdditionAllowed) { if (!isAdditionAllowed) {
return res.status(400).send({ error: 'Invalid fields to Add!' }) return res.status(400).send({ error: 'Invalid fields to Add!' });
} }
try { 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) { catch (e) {
res.status(400).send(e) res.status(400).send(e);
} }
}) });
// check if previously loggeding // check if previously loggeding
routes.post('/init', auth, async (req, res) => { routes.post('/init', auth, async (req, res) => {
...@@ -34,14 +34,14 @@ routes.post('/init', auth, async (req, res) => { ...@@ -34,14 +34,14 @@ routes.post('/init', auth, async (req, res) => {
httpOnly: true, httpOnly: true,
}; };
const { token, user } = req const { token, user } = req;
if (token && user) { 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) { } catch (e) {
res.status(400).send() res.status(400).send();
} }
}) });
// Login user // Login user
routes.post('/login', async (req, res) => { routes.post('/login', async (req, res) => {
...@@ -50,31 +50,32 @@ routes.post('/login', async (req, res) => { ...@@ -50,31 +50,32 @@ routes.post('/login', async (req, res) => {
httpOnly: true, 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) { } catch (e) {
res.status(400).send() res.status(400).send();
} }
}) });
//logout user //logout user
routes.post('/logout', auth, async (req, res) => { routes.post('/logout', auth, async (req, res) => {
try { try {
const { user, token } = req const { user, token } = req;
user.tokens = user.tokens.filter((t) => t.token !== token) user.tokens = user.tokens.filter((t) => t.token !== token);
await user.save() await user.save();
res.clearCookie('todo-jt') res.clearCookie('todo-jt');
res.send() res.send();
} catch (e) { } 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