Fix Eslint errors
parent
901b6b0db8
commit
9d8c517b82
|
@ -1,3 +1,6 @@
|
||||||
{
|
{
|
||||||
"extends": "airbnb-base"
|
"extends": "airbnb-base",
|
||||||
|
"rules": {
|
||||||
|
"max-len": ["error", { "comments": 120 }]
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -10,7 +10,11 @@ const UserSchema = new Schema({
|
||||||
type: String, required: [true, "can't be blank"],
|
type: String, required: [true, "can't be blank"],
|
||||||
},
|
},
|
||||||
email: {
|
email: {
|
||||||
type: String, lowercase: true, unique: true, required: [true, "can't be blank"], index: true,
|
type: String,
|
||||||
|
lowercase: true,
|
||||||
|
unique: true,
|
||||||
|
required: [true, "can't be blank"],
|
||||||
|
index: true,
|
||||||
},
|
},
|
||||||
password: {
|
password: {
|
||||||
type: String, required: [true, "can't be blank"],
|
type: String, required: [true, "can't be blank"],
|
||||||
|
|
|
@ -13,7 +13,10 @@ module.exports = (req, res, next) => {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return next({ status: 400, message: 'Authentication failed. User not found.' });
|
return next({
|
||||||
|
status: 400,
|
||||||
|
message: 'Authentication failed. User not found.',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if password matches
|
// check if password matches
|
||||||
|
@ -25,7 +28,11 @@ module.exports = (req, res, next) => {
|
||||||
email: user.email,
|
email: user.email,
|
||||||
};
|
};
|
||||||
|
|
||||||
const token = jwt.sign({ user: dataUser }, secret, { expiresIn: '12h' });
|
const token = jwt.sign({
|
||||||
|
user: dataUser,
|
||||||
|
}, secret, {
|
||||||
|
expiresIn: '12h',
|
||||||
|
});
|
||||||
|
|
||||||
// return the information including token as JSON
|
// return the information including token as JSON
|
||||||
return res.json({
|
return res.json({
|
||||||
|
@ -40,7 +47,10 @@ module.exports = (req, res, next) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return next({ status: 401, message: 'Authentication failed. Wrong password.' });
|
return next({
|
||||||
|
status: 401,
|
||||||
|
message: 'Authentication failed. Wrong password.',
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,12 +15,19 @@ module.exports = (req, res, next) => {
|
||||||
|
|
||||||
UserModel.countDocuments({ email: req.body.email }, (err, c) => {
|
UserModel.countDocuments({ email: req.body.email }, (err, c) => {
|
||||||
if (c !== 0) {
|
if (c !== 0) {
|
||||||
return next({ status: 401, message: 'Email is already taken by another user.' });
|
return next({
|
||||||
|
status: 401,
|
||||||
|
message: 'Email is already taken by another user.',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return User.save((saveErr) => {
|
return User.save((saveErr) => {
|
||||||
if (saveErr) {
|
if (saveErr) {
|
||||||
return next({ status: 500, message: 'Database error', error: [saveErr] });
|
return next({
|
||||||
|
status: 500,
|
||||||
|
message: 'Database error',
|
||||||
|
error: [saveErr],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return res.status(201).json({ success: true, message: 'Success' });
|
return res.status(201).json({ success: true, message: 'Success' });
|
||||||
|
|
|
@ -6,7 +6,11 @@ module.exports = (req, res, next) => {
|
||||||
|
|
||||||
const { user } = jwt.decode(req.headers.authorization);
|
const { user } = jwt.decode(req.headers.authorization);
|
||||||
|
|
||||||
const Note = new NoteModel({ title: req.body.title, text: req.body.text, user: user.id });
|
const Note = new NoteModel({
|
||||||
|
title: req.body.title,
|
||||||
|
text: req.body.text,
|
||||||
|
user: user.id,
|
||||||
|
});
|
||||||
|
|
||||||
Note.save((err) => {
|
Note.save((err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
@ -58,7 +58,7 @@ note.put('/:id', Authentication, UpdateValidation, update);
|
||||||
* "message": "Note successfully deleted."
|
* "message": "Note successfully deleted."
|
||||||
* }
|
* }
|
||||||
* @apiErrorExample {json} Error-Response:
|
* @apiErrorExample {json} Error-Response:
|
||||||
* HTTP/1.1 403 Not Found
|
* HTTP/1.1 403 Forbidden
|
||||||
* {
|
* {
|
||||||
* "success": false,
|
* "success": false,
|
||||||
* "message": "Access forbidden.",
|
* "message": "Access forbidden.",
|
||||||
|
|
|
@ -22,10 +22,13 @@ user.get('/me', Authentication, profile);
|
||||||
* @api {put} /user/me Update account information
|
* @api {put} /user/me Update account information
|
||||||
* @apiName UpdateUser
|
* @apiName UpdateUser
|
||||||
* @apiGroup User
|
* @apiGroup User
|
||||||
|
* @apiDescription Send only password and new_password to change the password. Otherwise they will be ignored.
|
||||||
*
|
*
|
||||||
* @apiParam {String} Firstname new firstname.
|
* @apiParam {String} Firstname New firstname.
|
||||||
* @apiParam {String} Lastname new lastname.
|
* @apiParam {String} Lastname New lastname.
|
||||||
* @apiParam {String} Email new email address.
|
* @apiParam {String} Email New email address.
|
||||||
|
* @apiParam {String} Password Actual password.
|
||||||
|
* @apiParam {String} Password New password.
|
||||||
*
|
*
|
||||||
* @apiSuccess {Object} user User object.
|
* @apiSuccess {Object} user User object.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,20 @@
|
||||||
module.exports = (req, res) => {
|
const mongoose = require('mongoose');
|
||||||
const user = {};
|
const jwt = require('jsonwebtoken');
|
||||||
|
|
||||||
res.status(200).json({ user });
|
module.exports = (req, res, next) => {
|
||||||
|
const UserModel = mongoose.model('User');
|
||||||
|
|
||||||
|
const { user } = jwt.decode(req.headers.authorization);
|
||||||
|
|
||||||
|
return UserModel.findById(user.id, 'id firstname lastname email')
|
||||||
|
.lean()
|
||||||
|
.exec()
|
||||||
|
.then((result) => {
|
||||||
|
if (result === null) {
|
||||||
|
return next({ status: 401, message: 'User does not exists.' });
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(200).json(result);
|
||||||
|
})
|
||||||
|
.catch(() => next({ status: 401, message: 'User does not exists.' }));
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,7 +16,7 @@ module.exports = (req, res, next) => {
|
||||||
return next({ status: 401, error: validateErr.details });
|
return next({ status: 401, error: validateErr.details });
|
||||||
}
|
}
|
||||||
|
|
||||||
return jwt.verify(req.headers.authorization, secret, (err, decoded) => {
|
return jwt.verify(req.headers.authorization, secret, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return next({ status: 401, message: 'Token error.', error: [err] });
|
return next({ status: 401, message: 'Token error.', error: [err] });
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,11 @@ module.exports = (req, res, next) => {
|
||||||
},
|
},
|
||||||
schema, (validateErr) => {
|
schema, (validateErr) => {
|
||||||
if (validateErr) {
|
if (validateErr) {
|
||||||
return next({ status: 400, message: 'Form is invalid.', error: validateErr.details });
|
return next({
|
||||||
|
status: 400,
|
||||||
|
message: 'Form is invalid.',
|
||||||
|
error: validateErr.details,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return next();
|
return next();
|
||||||
|
|
|
@ -12,7 +12,11 @@ module.exports = (req, res, next) => {
|
||||||
},
|
},
|
||||||
schema, (validateErr) => {
|
schema, (validateErr) => {
|
||||||
if (validateErr) {
|
if (validateErr) {
|
||||||
return next({ status: 400, message: 'Form is invalid.', error: validateErr.details });
|
return next({
|
||||||
|
status: 400,
|
||||||
|
message: 'Form is invalid.',
|
||||||
|
error: validateErr.details,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return next();
|
return next();
|
||||||
|
|
|
@ -12,7 +12,11 @@ module.exports = (req, res, next) => {
|
||||||
},
|
},
|
||||||
schema, (validateErr) => {
|
schema, (validateErr) => {
|
||||||
if (validateErr) {
|
if (validateErr) {
|
||||||
return next({ status: 400, message: 'Form is invalid.', error: validateErr.details });
|
return next({
|
||||||
|
status: 400,
|
||||||
|
message: 'Form is invalid.',
|
||||||
|
error: validateErr.details,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return next();
|
return next();
|
||||||
|
|
|
@ -16,7 +16,11 @@ module.exports = (req, res, next) => {
|
||||||
},
|
},
|
||||||
schema, (validateErr) => {
|
schema, (validateErr) => {
|
||||||
if (validateErr) {
|
if (validateErr) {
|
||||||
return next({ status: 400, message: 'Form is invalid.', error: validateErr.details });
|
return next({
|
||||||
|
status: 400,
|
||||||
|
message: 'Form is invalid.',
|
||||||
|
error: validateErr.details,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return next();
|
return next();
|
||||||
|
|
6
index.js
6
index.js
|
@ -10,7 +10,11 @@ const port = process.env.PORT || 8080; // set our port
|
||||||
app.use('/', routes);
|
app.use('/', routes);
|
||||||
|
|
||||||
app.use((err, req, res, next) => {
|
app.use((err, req, res, next) => {
|
||||||
res.status(err.status || 400).json({ success: false, message: err.message || 'An error occured.', errors: err.error || [] });
|
res.status(err.status || 400).json({
|
||||||
|
success: false,
|
||||||
|
message: err.message || 'An error occured.',
|
||||||
|
errors: err.error || [],
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.use((req, res) => {
|
app.use((req, res) => {
|
||||||
|
|
Loading…
Reference in New Issue