From d2b87b35fb4bdb8c99bf1ac00af108f23c65bb7b Mon Sep 17 00:00:00 2001 From: kbkk Date: Wed, 27 Mar 2019 23:05:03 +0100 Subject: [PATCH] improve code formatting rules - add .editorconfig - force unix line endings - add eslint rules - reformat code with new rules --- .editorconfig | 9 +++ .eslintrc.json | 33 ++++++++- src/app.js | 5 +- src/checkDatabaseStatus.js | 12 ++-- src/controllers/authController.js | 15 ++-- src/controllers/errorTicketController.js | 20 +++--- src/controllers/matchController.js | 28 ++++---- src/controllers/messageController.js | 36 +++++----- src/controllers/pendingMatchController.js | 30 ++++---- src/controllers/privilegedUserController.js | 14 ++-- src/controllers/userController.js | 20 +++--- src/middlewares/auth.js | 8 +-- src/middlewares/checkIfBlocked.js | 9 ++- src/middlewares/checkOwnership.js | 4 +- src/middlewares/checkPrivileges.js | 4 +- src/middlewares/errors.js | 2 +- src/middlewares/loginCheck.js | 4 +- src/middlewares/uploadImage.js | 4 +- src/models/ErrorTicket.js | 4 +- src/models/Match.js | 4 +- src/models/Message.js | 4 +- src/models/PendingMatch.js | 4 +- src/models/PrivilegedUser.js | 4 +- src/models/User.js | 6 +- src/routes/errorTicketsRouter.js | 8 +-- src/routes/indexRouter.js | 8 +-- src/routes/matchesRouter.js | 8 +-- src/routes/messagesRouter.js | 8 +-- src/routes/pendingMatchesRouter.js | 8 +-- src/routes/privilegedUsersRouter.js | 8 +-- src/routes/usersRouter.js | 8 +-- src/seed/matchesSeeder.js | 6 +- src/seed/messagesSeeder.js | 6 +- src/seed/pendingMatchesSeeder.js | 6 +- src/seed/privilegedUsersSeeder.js | 6 +- src/seed/usersSeeder.js | 4 +- src/seedRunner.js | 3 +- src/server.js | 2 +- src/validators/checkValidation.js | 2 +- src/validators/matchesValidator.js | 2 +- src/validators/messagesValidator.js | 2 +- src/validators/pendingMatchesValidator.js | 2 +- src/validators/privilegedUsersValidator.js | 2 +- src/validators/usersValidator.js | 14 ++-- tests/unit/auth/authController.test.js | 16 ++--- .../errorTicketsController.test.js | 52 +++++++------- .../privilegedUsersController.test.js | 68 +++++++++---------- tests/unit/databaseConnection.test.js | 5 +- testsConfig.js | 2 +- 49 files changed, 295 insertions(+), 244 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..7e072ae --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.js] +indent_style = tab +indent_size = 2 diff --git a/.eslintrc.json b/.eslintrc.json index 552182e..46df4c1 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -20,11 +20,15 @@ "indent": [ "error", - "tab" + "tab", + { + "SwitchCase": 1, + "ObjectExpression": 1 + } ], "linebreak-style": [ "error", - "windows" + "unix" ], "quotes": [ "error", @@ -34,6 +38,29 @@ "semi": [ "error", "always" + ], + "eol-last": [ + "error", + "always" + ], + "space-before-blocks": [ + "error", + "always" + ], + "space-before-function-paren": [ + "error", + "never" + ], + "object-curly-spacing": [ + "error", + "never" + ], + "keyword-spacing": [ + "error", + { + "before": true, + "after": true + } ] } -} \ No newline at end of file +} diff --git a/src/app.js b/src/app.js index 64d4574..c04c3e4 100644 --- a/src/app.js +++ b/src/app.js @@ -1,4 +1,5 @@ import dotenv from 'dotenv'; + dotenv.config({path: '.env'}); import express from 'express'; import bodyParser from 'body-parser'; @@ -22,7 +23,7 @@ const app = express(); passport(); //Setup MongoDB -mongoose.connect(process.env.DB_HOST, {useNewUrlParser: true }); +mongoose.connect(process.env.DB_HOST, {useNewUrlParser: true}); mongoose.set('useCreateIndex', true); mongoose.set('useFindAndModify', false); checkDatabaseStatus(process.env.DB_HOST); @@ -44,4 +45,4 @@ app.use('/privileged-users', privilegedUsersRouter); app.use(errorsHandler.notFound); app.use(errorsHandler.catchErrors); -module.exports = app; \ No newline at end of file +module.exports = app; diff --git a/src/checkDatabaseStatus.js b/src/checkDatabaseStatus.js index 97fee2b..b8ffd58 100644 --- a/src/checkDatabaseStatus.js +++ b/src/checkDatabaseStatus.js @@ -1,22 +1,22 @@ import mongoose from 'mongoose'; import chalk from 'chalk'; -const { cyan } = chalk.bold; -const { yellow } = chalk.bold.yellow; -const { red } = chalk.bold.red; +const {cyan} = chalk.bold; +const {yellow} = chalk.bold.yellow; +const {red} = chalk.bold.red; function checkDatabaseStatus(url) { const db = mongoose.connection; - db.on('connected', function(){ + db.on('connected', function() { console.log(cyan(`Mongoose connection is open to ${url}`)); }); - mongoose.connection.on('error', function(err){ + mongoose.connection.on('error', function(err) { console.log(red(`Mongoose connection has occured ${err} error`)); }); - mongoose.connection.on('disconnected', function(){ + mongoose.connection.on('disconnected', function() { console.log(yellow('Mongoose connection is disconnected')); }); } diff --git a/src/controllers/authController.js b/src/controllers/authController.js index 30256e2..6610126 100644 --- a/src/controllers/authController.js +++ b/src/controllers/authController.js @@ -3,7 +3,7 @@ import jwt from 'jsonwebtoken'; export default { async login(req, res) { - const token = jwt.sign({ id: req.user._id }, process.env.JWT_SECRET, { expiresIn: 3600 }); + const token = jwt.sign({id: req.user._id}, process.env.JWT_SECRET, {expiresIn: 3600}); return res.status(200).json({ success: true, message: 'User signed in successfully.', @@ -14,11 +14,17 @@ export default { async register(req, res) { const {name, email, phone, gender, birthDate, purpose, password, geometry} = req.body; let profilePicture = ''; - if(req.file) { + if (req.file) { profilePicture = req.file.path; } const user = new User({name, email, password, phone, gender, birthDate, purpose, profilePicture, geometry}); - const detailsToShow = (({ _id, name, email, profilePicture, geometry }) => ({ _id, name, email, profilePicture, geometry }))(user); + const detailsToShow = (({_id, name, email, profilePicture, geometry}) => ({ + _id, + name, + email, + profilePicture, + geometry + }))(user); try { await User.register(user, password); return res.status(201).json({ @@ -26,8 +32,7 @@ export default { message: 'User registered successfully.', user: detailsToShow }); - } - catch(err) { + } catch (err) { return res.status(409).json(err); } } diff --git a/src/controllers/errorTicketController.js b/src/controllers/errorTicketController.js index 5f74b5f..4e3accd 100644 --- a/src/controllers/errorTicketController.js +++ b/src/controllers/errorTicketController.js @@ -12,7 +12,7 @@ export default { }) .skip(offset).limit(perPage) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: 'Error tickets not found.' }); @@ -34,10 +34,12 @@ export default { select: '-__v -salt -hash -createdAt -updatedAt' }) .then(item => { - if(!item) return res.status(404).json({ - success: false, - message: `Error ticket with ID ${req.params.id} not found.` - }); + if (!item) { + return res.status(404).json({ + success: false, + message: `Error ticket with ID ${req.params.id} not found.` + }); + } res.status(200).json({ success: true, data: item @@ -68,7 +70,7 @@ export default { createNew(req, res) { const errorTicket = new ErrorTicket(req.body); return errorTicket.save() - .then(item => res.status(201).json({ + .then(item => res.status(201).json({ success: true, message: 'Error ticket created successfully.', data: item @@ -78,10 +80,10 @@ export default { message: err })); }, - deleteOne(req, res) { + deleteOne(req, res) { return ErrorTicket.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Error ticket with ID ${req.params.id} not found.` }); @@ -96,4 +98,4 @@ export default { message: err })); } -}; \ No newline at end of file +}; diff --git a/src/controllers/matchController.js b/src/controllers/matchController.js index a431281..5e2973c 100644 --- a/src/controllers/matchController.js +++ b/src/controllers/matchController.js @@ -1,6 +1,6 @@ import Match from '../models/Match'; -export default { +export default { async getAll(req, res) { const offset = parseInt(req.query.offset) || 0; const perPage = parseInt(req.query.perPage) || 100; @@ -16,7 +16,7 @@ export default { }) .skip(offset).limit(perPage) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: 'Matches not found.' }); @@ -42,11 +42,11 @@ export default { select: 'name profilePicture _id' }) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Match with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { res.status(200).json({ success: true, data: item @@ -64,17 +64,19 @@ export default { })); }, getResourcesOfUser(req, res) { - return Match.find({$or: + return Match.find({ + $or: [ {'user1': req.params.id}, {'user2': req.params.id} - ]}) + ] + }) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: `Resources of user ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { res.status(200).json(item); } else { res.status(403).json({ @@ -104,11 +106,11 @@ export default { updateOne(req, res) { return Match.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Match with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { const match = Object.assign(item, req.body); match.save() .then(item => res.status(200).json({ @@ -131,11 +133,11 @@ export default { deleteOne(req, res) { return Match.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Match with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { item.delete({_id: req.params.id}); res.status(200).json({ success: true, @@ -153,4 +155,4 @@ export default { message: err })); } -}; \ No newline at end of file +}; diff --git a/src/controllers/messageController.js b/src/controllers/messageController.js index 5a36f33..5442e8c 100644 --- a/src/controllers/messageController.js +++ b/src/controllers/messageController.js @@ -20,7 +20,7 @@ export default { }) .skip(offset).limit(perPage) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: 'Messages not found.' }); @@ -49,11 +49,11 @@ export default { path: 'match' }) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Message with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.recipient._id) || req.user._id.equals(item.sender._id)) { + if (req.user._id.equals(item.recipient._id) || req.user._id.equals(item.sender._id)) { res.status(200).json({ success: true, data: item @@ -71,17 +71,19 @@ export default { })); }, getResourcesOfUser(req, res) { - return Message.find({$or: + return Message.find({ + $or: [ {'recipient': req.user._id}, {'sender': req.user._id} - ]}) + ] + }) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: `Resources of user ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.recipient._id) || req.user._id.equals(item.sender_id)) { + if (req.user._id.equals(item.recipient._id) || req.user._id.equals(item.sender_id)) { res.status(200).json({ success: true, data: item @@ -101,11 +103,11 @@ export default { getResourcesOfMatch(req, res) { return Message.find({'match': req.params.id}) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: `Resources of match ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.recipient._id) || req.user._id.equals(item.sender._id)) { + if (req.user._id.equals(item.recipient._id) || req.user._id.equals(item.sender._id)) { res.status(200).json({ success: true, data: item @@ -125,20 +127,20 @@ export default { createNew(req, res) { Match.findById(req.body.match) .then(item => { - if(!item) { + if (!item) { return res.status(404).json({ success: false, message: `Match with ID ${req.body.match} not found.` }); } - if(!req.user._id.equals(item.user1._id) || !req.user._id.equals(item.user2._id)) { + if (!req.user._id.equals(item.user1._id) || !req.user._id.equals(item.user2._id)) { return res.status(403).json({ success: false, message: 'Invalid match. User not permitted.' }); } }); - if(req.user._id.equals(req.body.recipient) || !req.user._id.equals(req.body.sender)) { + if (req.user._id.equals(req.body.recipient) || !req.user._id.equals(req.body.sender)) { return res.status(403).json({ success: false, message: 'Access denied. User not permitted.' @@ -159,11 +161,11 @@ export default { updateOne(req, res) { return Message.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Message with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.sender._id)) { + if (req.user._id.equals(item.sender._id)) { const message = Object.assign(item, req.body); message.save() .then(item => res.status(200).json({ @@ -186,11 +188,11 @@ export default { deleteOne(req, res) { return Message.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Message with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.sender._id)) { + if (req.user._id.equals(item.sender._id)) { item.delete({_id: req.params.id}); res.status(200).json({ success: true, @@ -208,4 +210,4 @@ export default { message: err })); } -}; \ No newline at end of file +}; diff --git a/src/controllers/pendingMatchController.js b/src/controllers/pendingMatchController.js index 0e4bcfa..03c77ca 100644 --- a/src/controllers/pendingMatchController.js +++ b/src/controllers/pendingMatchController.js @@ -16,7 +16,7 @@ export default { select: 'name profilePicture' }) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: 'Pending matches not found.' }); @@ -42,11 +42,11 @@ export default { select: 'name profilePicture' }) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Pending match with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { res.status(200).json({ success: true, data: item @@ -64,17 +64,19 @@ export default { })); }, getResourcesOfUser(req, res) { - return PendingMatch.find({$or: + return PendingMatch.find({ + $or: [ {'user1': req.params.id}, {'user2': req.params.id} - ]}) + ] + }) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: `Resources of user ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { res.status(200).json({ success: true, data: item @@ -107,12 +109,12 @@ export default { updateOne(req, res) { return PendingMatch.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Pending match with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { - if((req.user._id.equals(item.user1._id) && req.body.user2Approval) || (req.user._id.equals(item.user2._id) && req.body.user1Approval)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._id)) { + if ((req.user._id.equals(item.user1._id) && req.body.user2Approval) || (req.user._id.equals(item.user2._id) && req.body.user1Approval)) { return res.status(403).json({ success: false, message: 'Access denied. User not permitted.' @@ -121,7 +123,7 @@ export default { const pendingMatch = Object.assign(item, req.body); pendingMatch.save() .then(item => { - if(item.user1Approval && item.user2Approval) { + if (item.user1Approval && item.user2Approval) { const newMatch = new Match(pendingMatch); newMatch.save(); item.remove({_id: item._id}); @@ -153,11 +155,11 @@ export default { deleteOne(req, res) { return PendingMatch.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Pending match with ID ${req.params.id} not found.` }); - if(req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._idd)) { + if (req.user._id.equals(item.user1._id) || req.user._id.equals(item.user2._idd)) { item.delete({_id: req.params.id}); res.status(200).json({ success: true, @@ -175,4 +177,4 @@ export default { message: err })); } -}; \ No newline at end of file +}; diff --git a/src/controllers/privilegedUserController.js b/src/controllers/privilegedUserController.js index 16583cc..ba6890a 100644 --- a/src/controllers/privilegedUserController.js +++ b/src/controllers/privilegedUserController.js @@ -11,7 +11,7 @@ export default { select: '-__v -salt -hash -createdAt -updatedAt' }) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: 'Privileged users not found.' }); @@ -33,7 +33,7 @@ export default { select: '-__v -salt -hash -createdAt -updatedAt' }) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Privileged user with ID ${req.params.id} not found.` }); @@ -50,7 +50,7 @@ export default { getResourcesOfUser(req, res) { return PrivilegedUser.find({'user': req.params.id}) .then(item => { - if(!item.length || !item) { + if (!item.length || !item) { return res.status(200).json({ success: true, userId: req.params.id, @@ -71,7 +71,7 @@ export default { createNew(req, res) { const privilegedUser = new PrivilegedUser(req.body); return privilegedUser.save() - .then(item => res.status(201).json({ + .then(item => res.status(201).json({ success: true, message: 'Privileged user created successfully.', data: item @@ -84,7 +84,7 @@ export default { updateOne(req, res) { return PrivilegedUser.findByIdAndUpdate(req.params.id, req.body, {new: true}) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ item: item, success: false, message: `Privileged user with ID ${req.params.id} not found.` @@ -102,7 +102,7 @@ export default { deleteOne(req, res) { return PrivilegedUser.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `Privileged user with ID ${req.params.id} not found.` }); @@ -117,4 +117,4 @@ export default { message: err })); } -}; \ No newline at end of file +}; diff --git a/src/controllers/userController.js b/src/controllers/userController.js index d118cf3..c1b9eb5 100644 --- a/src/controllers/userController.js +++ b/src/controllers/userController.js @@ -8,7 +8,7 @@ export default { const count = await User.estimatedDocumentCount(); return User.find({}).skip(offset).limit(perPage) .then(item => { - if(!item.length || !item) return res.status(404).json({ + if (!item.length || !item) return res.status(404).json({ success: false, message: 'Users not found.' }); @@ -26,7 +26,7 @@ export default { getOne(req, res) { return User.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `User with ID ${req.params.id} not found.` }); @@ -52,12 +52,12 @@ export default { .match({ gender: req.params.gender, $and: [ - { birthDate: { $gte: moment().subtract(req.params.minAge, 'years') } }, - { birthDate: { $lte: moment().subtract(req.params.maxAge, 'years') } } + {birthDate: {$gte: moment().subtract(req.params.minAge, 'years')}}, + {birthDate: {$lte: moment().subtract(req.params.maxAge, 'years')}} ] }).skip(offset).limit(perPage) .then(item => { - if(!item.length || !item) return res.status(200).json({ + if (!item.length || !item) return res.status(200).json({ success: true, message: `There are no people nearby` }); @@ -74,7 +74,7 @@ export default { updateOne(req, res) { return User.findByIdAndUpdate(req.params.id, req.body, {new: true}) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `User with ID ${req.params.id} not found.` }); @@ -91,7 +91,7 @@ export default { updateProfilePicture(req, res) { User.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `User with ID ${req.params.id} not found.` }); @@ -113,7 +113,7 @@ export default { const paths = req.files.map(file => file.path); User.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `User with ID ${req.params.id} not found.` }); @@ -134,7 +134,7 @@ export default { deleteOne(req, res) { return User.findById(req.params.id) .then(item => { - if(!item) return res.status(404).json({ + if (!item) return res.status(404).json({ success: false, message: `User with ID ${req.params.id} not found.` }); @@ -149,4 +149,4 @@ export default { message: err })); } -}; \ No newline at end of file +}; diff --git a/src/middlewares/auth.js b/src/middlewares/auth.js index d6350aa..be61e50 100644 --- a/src/middlewares/auth.js +++ b/src/middlewares/auth.js @@ -1,15 +1,15 @@ import passport from 'passport'; export default (req, res, next) => { - return passport.authenticate('jwt',{session: false}, (err, user, info) => { + return passport.authenticate('jwt', {session: false}, (err, user, info) => { if (err) return next(err); if (!user) { return res.status(401).json({ success: false, error: info.message || 'Invalid token.' - } - );} + }); + } req.user = user; next(); })(req, res, next); -}; \ No newline at end of file +}; diff --git a/src/middlewares/checkIfBlocked.js b/src/middlewares/checkIfBlocked.js index 8d086db..f96946f 100644 --- a/src/middlewares/checkIfBlocked.js +++ b/src/middlewares/checkIfBlocked.js @@ -4,14 +4,13 @@ import moment from 'moment'; export default (req, res, next) => { User.findById(req.user._id).select('+blocked +blockedTo') .then(item => { - if(!item.blocked) next(); + if (!item.blocked) next(); else { - if(moment(item.blockedTo).isBefore(moment())) { + if (moment(item.blockedTo).isBefore(moment())) { const user = Object.assign(item, {blockedTo: null, blocked: false}); user.save(); next(); - } - else { + } else { res.status(403).json({ success: false, message: `Access denied. User blocked to ${item.blockedTo}.`, @@ -24,4 +23,4 @@ export default (req, res, next) => { success: false, message: err })); -}; \ No newline at end of file +}; diff --git a/src/middlewares/checkOwnership.js b/src/middlewares/checkOwnership.js index 0f0f26c..9c9b5cc 100644 --- a/src/middlewares/checkOwnership.js +++ b/src/middlewares/checkOwnership.js @@ -1,7 +1,7 @@ export default (req, res, next) => { - if(req.user._id.equals(req.params.id)) next(); + if (req.user._id.equals(req.params.id)) next(); else res.status(403).json({ success: false, message: 'Access denied. User not permitted.' }); -}; \ No newline at end of file +}; diff --git a/src/middlewares/checkPrivileges.js b/src/middlewares/checkPrivileges.js index d6cb6a8..00d3f62 100644 --- a/src/middlewares/checkPrivileges.js +++ b/src/middlewares/checkPrivileges.js @@ -3,7 +3,7 @@ import PrivilegedUser from '../models/PrivilegedUser'; export default (req, res, next) => { PrivilegedUser.find({'user': req.params.id}) .then(item => { - if(item.role === 'Administrator') next(); + if (item.role === 'Administrator') next(); else { res.status(403).json({ success: false, @@ -15,4 +15,4 @@ export default (req, res, next) => { success: false, message: err })); -}; \ No newline at end of file +}; diff --git a/src/middlewares/errors.js b/src/middlewares/errors.js index 703e9d8..2d49ee1 100644 --- a/src/middlewares/errors.js +++ b/src/middlewares/errors.js @@ -10,4 +10,4 @@ exports.catchErrors = (err, req, res) => { success: false, message: err.message }); -}; \ No newline at end of file +}; diff --git a/src/middlewares/loginCheck.js b/src/middlewares/loginCheck.js index c49fad6..f7d0b82 100644 --- a/src/middlewares/loginCheck.js +++ b/src/middlewares/loginCheck.js @@ -1,7 +1,7 @@ import passport from 'passport'; export default (req, res, next) => { - passport.authenticate('local',{session: false}, (err, user, info) => { + passport.authenticate('local', {session: false}, (err, user, info) => { if (err) return next(err); if (!user) { return res.status(401).json({ @@ -12,4 +12,4 @@ export default (req, res, next) => { req.user = user; next(); })(req, res, next); -}; \ No newline at end of file +}; diff --git a/src/middlewares/uploadImage.js b/src/middlewares/uploadImage.js index a2d12ce..36bd336 100644 --- a/src/middlewares/uploadImage.js +++ b/src/middlewares/uploadImage.js @@ -3,7 +3,7 @@ import fs from 'fs'; import mkdirp from 'mkdirp'; const currentDate = new Date(); -const dirName = `./uploads/${currentDate.getFullYear()}/${currentDate.getMonth()+1}`; +const dirName = `./uploads/${currentDate.getFullYear()}/${currentDate.getMonth() + 1}`; const fileFilter = (req, file, callback) => { if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') { @@ -36,4 +36,4 @@ const upload = multer({ fileFilter: fileFilter }); -export default upload; \ No newline at end of file +export default upload; diff --git a/src/models/ErrorTicket.js b/src/models/ErrorTicket.js index 1ee1374..3af9a84 100644 --- a/src/models/ErrorTicket.js +++ b/src/models/ErrorTicket.js @@ -15,6 +15,6 @@ const errorTicketSchema = mongoose.Schema({ timestamps: true }); -errorTicketSchema.plugin(mongooseDelete, { deletedAt : true, overrideMethods: true }); +errorTicketSchema.plugin(mongooseDelete, {deletedAt: true, overrideMethods: true}); -module.exports = mongoose.model('ErrorTicket', errorTicketSchema, 'errorTickets'); \ No newline at end of file +module.exports = mongoose.model('ErrorTicket', errorTicketSchema, 'errorTickets'); diff --git a/src/models/Match.js b/src/models/Match.js index 96f1760..8b57404 100644 --- a/src/models/Match.js +++ b/src/models/Match.js @@ -16,6 +16,6 @@ const matchSchema = mongoose.Schema({ timestamps: true }); -matchSchema.plugin(mongooseDelete, { deletedAt : true, overrideMethods: true }); +matchSchema.plugin(mongooseDelete, {deletedAt: true, overrideMethods: true}); -module.exports = mongoose.model('Match', matchSchema, 'matches'); \ No newline at end of file +module.exports = mongoose.model('Match', matchSchema, 'matches'); diff --git a/src/models/Message.js b/src/models/Message.js index c46a01d..c4c34fd 100644 --- a/src/models/Message.js +++ b/src/models/Message.js @@ -25,6 +25,6 @@ const messageSchema = mongoose.Schema({ timestamps: true }); -messageSchema.plugin(mongooseDelete, { deletedAt : true, overrideMethods: true }); +messageSchema.plugin(mongooseDelete, {deletedAt: true, overrideMethods: true}); -module.exports = mongoose.model('Message', messageSchema, 'messages'); \ No newline at end of file +module.exports = mongoose.model('Message', messageSchema, 'messages'); diff --git a/src/models/PendingMatch.js b/src/models/PendingMatch.js index a7bdb22..cbcff93 100644 --- a/src/models/PendingMatch.js +++ b/src/models/PendingMatch.js @@ -18,6 +18,6 @@ const pendingMatchSchema = mongoose.Schema({ timestamps: true }); -pendingMatchSchema.plugin(mongooseDelete, { deletedAt : true, overrideMethods: true }); +pendingMatchSchema.plugin(mongooseDelete, {deletedAt: true, overrideMethods: true}); -module.exports = mongoose.model('PendingMatch', pendingMatchSchema, 'pendingMatches'); \ No newline at end of file +module.exports = mongoose.model('PendingMatch', pendingMatchSchema, 'pendingMatches'); diff --git a/src/models/PrivilegedUser.js b/src/models/PrivilegedUser.js index 82dde11..1e85add 100644 --- a/src/models/PrivilegedUser.js +++ b/src/models/PrivilegedUser.js @@ -17,6 +17,6 @@ const privilegedUserSchema = mongoose.Schema({ timestamps: true }); -privilegedUserSchema.plugin(mongooseDelete, { deletedAt : true, overrideMethods: true }); +privilegedUserSchema.plugin(mongooseDelete, {deletedAt: true, overrideMethods: true}); -module.exports = mongoose.model('PrivilegedUser', privilegedUserSchema, 'privilegedUsers'); \ No newline at end of file +module.exports = mongoose.model('PrivilegedUser', privilegedUserSchema, 'privilegedUsers'); diff --git a/src/models/User.js b/src/models/User.js index e9eba07..3b51b27 100644 --- a/src/models/User.js +++ b/src/models/User.js @@ -77,7 +77,7 @@ const userSchema = mongoose.Schema({ timestamps: true }); -userSchema.plugin(mongooseDelete, { deletedAt : true, overrideMethods: true }); -userSchema.plugin(passportLocalMongoose, { usernameField: 'email' }); +userSchema.plugin(mongooseDelete, {deletedAt: true, overrideMethods: true}); +userSchema.plugin(passportLocalMongoose, {usernameField: 'email'}); -module.exports = mongoose.model('User', userSchema, 'users'); \ No newline at end of file +module.exports = mongoose.model('User', userSchema, 'users'); diff --git a/src/routes/errorTicketsRouter.js b/src/routes/errorTicketsRouter.js index 47a55d4..6f3d659 100644 --- a/src/routes/errorTicketsRouter.js +++ b/src/routes/errorTicketsRouter.js @@ -1,9 +1,9 @@ -import { Router } from 'express'; +import {Router} from 'express'; import errorTicketController from '../controllers/errorTicketController'; import jwtAuth from '../middlewares/auth'; import checkPrivileges from '../middlewares/checkPrivileges'; -import { validateCreate } from '../validators/errorTicketsValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateCreate} from '../validators/errorTicketsValidator'; +import {checkValidation} from '../validators/checkValidation'; const api = Router(); api.get('/', @@ -37,4 +37,4 @@ api.delete('/:id', errorTicketController.deleteOne ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/routes/indexRouter.js b/src/routes/indexRouter.js index 5893b27..c4c9cc6 100644 --- a/src/routes/indexRouter.js +++ b/src/routes/indexRouter.js @@ -1,10 +1,10 @@ -import { Router } from 'express'; +import {Router} from 'express'; import authController from '../controllers/authController'; import loginCheck from '../middlewares/loginCheck'; import checkIfBlocked from '../middlewares/checkIfBlocked'; import upload from '../middlewares/uploadImage'; -import { validateRegister } from '../validators/usersValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateRegister} from '../validators/usersValidator'; +import {checkValidation} from '../validators/checkValidation'; import jwtAuth from '../middlewares/auth'; const api = Router(); @@ -31,4 +31,4 @@ api.post('/register', authController.register ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/routes/matchesRouter.js b/src/routes/matchesRouter.js index ad656c1..168f262 100644 --- a/src/routes/matchesRouter.js +++ b/src/routes/matchesRouter.js @@ -1,9 +1,9 @@ -import { Router } from 'express'; +import {Router} from 'express'; import matchController from '../controllers/matchController'; import jwtAuth from '../middlewares/auth'; import checkPrivileges from '../middlewares/checkPrivileges'; -import { validateCreate, validateUpdate } from '../validators/matchesValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateCreate, validateUpdate} from '../validators/matchesValidator'; +import {checkValidation} from '../validators/checkValidation'; const api = Router(); api.get('/', @@ -43,4 +43,4 @@ api.delete('/:id', matchController.deleteOne ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/routes/messagesRouter.js b/src/routes/messagesRouter.js index 3c2e287..fb6c75f 100644 --- a/src/routes/messagesRouter.js +++ b/src/routes/messagesRouter.js @@ -1,9 +1,9 @@ -import { Router } from 'express'; +import {Router} from 'express'; import messageController from '../controllers/messageController'; import jwtAuth from '../middlewares/auth'; import checkPrivileges from '../middlewares/checkPrivileges'; -import { validateCreate, validateUpdate } from '../validators/messagesValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateCreate, validateUpdate} from '../validators/messagesValidator'; +import {checkValidation} from '../validators/checkValidation'; const api = Router(); api.get('/', @@ -46,4 +46,4 @@ api.delete('/:id', messageController.deleteOne ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/routes/pendingMatchesRouter.js b/src/routes/pendingMatchesRouter.js index f4dde50..ab44a97 100644 --- a/src/routes/pendingMatchesRouter.js +++ b/src/routes/pendingMatchesRouter.js @@ -1,8 +1,8 @@ -import { Router } from 'express'; +import {Router} from 'express'; import pendingMatchController from '../controllers/pendingMatchController'; import jwtAuth from '../middlewares/auth'; -import { validateCreate, validateUpdate } from '../validators/pendingMatchesValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateCreate, validateUpdate} from '../validators/pendingMatchesValidator'; +import {checkValidation} from '../validators/checkValidation'; import checkPrivileges from '../middlewares/checkPrivileges'; const api = Router(); @@ -43,4 +43,4 @@ api.delete('/:id', pendingMatchController.deleteOne ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/routes/privilegedUsersRouter.js b/src/routes/privilegedUsersRouter.js index f5ece68..c9e4f91 100644 --- a/src/routes/privilegedUsersRouter.js +++ b/src/routes/privilegedUsersRouter.js @@ -1,8 +1,8 @@ -import { Router } from 'express'; +import {Router} from 'express'; import privilegedUserController from '../controllers/privilegedUserController'; import jwtAuth from '../middlewares/auth'; -import { validateCreate, validateUpdate } from '../validators/privilegedUsersValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateCreate, validateUpdate} from '../validators/privilegedUsersValidator'; +import {checkValidation} from '../validators/checkValidation'; import checkPrivileges from '../middlewares/checkPrivileges'; const api = Router(); @@ -44,4 +44,4 @@ api.delete('/:id', privilegedUserController.deleteOne ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/routes/usersRouter.js b/src/routes/usersRouter.js index 94cadbb..fcea781 100644 --- a/src/routes/usersRouter.js +++ b/src/routes/usersRouter.js @@ -1,11 +1,11 @@ -import { Router } from 'express'; +import {Router} from 'express'; import jwtAuth from '../middlewares/auth'; import checkOwnership from '../middlewares/checkOwnership'; import checkPrivileges from '../middlewares/checkPrivileges'; import userController from '../controllers/userController'; import upload from '../middlewares/uploadImage'; -import { validateUserUpdate } from '../validators/usersValidator'; -import { checkValidation } from '../validators/checkValidation'; +import {validateUserUpdate} from '../validators/usersValidator'; +import {checkValidation} from '../validators/checkValidation'; const api = Router(); api.get('/', @@ -52,4 +52,4 @@ api.delete('/:id', userController.deleteOne ); -module.exports = api; \ No newline at end of file +module.exports = api; diff --git a/src/seed/matchesSeeder.js b/src/seed/matchesSeeder.js index 0d77302..588480a 100644 --- a/src/seed/matchesSeeder.js +++ b/src/seed/matchesSeeder.js @@ -1,9 +1,9 @@ import mongoose from 'mongoose'; import Match from '../models/Match'; -mongoose.connect('mongodb://localhost:27017/FindMates', { useNewUrlParser: true }); +mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true}); mongoose.set('useCreateIndex', true); -Match.deleteMany({}, err=> console.log(err)); +Match.deleteMany({}, err => console.log(err)); const user1 = mongoose.Types.ObjectId(); const user2 = mongoose.Types.ObjectId(); @@ -15,4 +15,4 @@ const match = new Match({ match.save() .then(() => mongoose.disconnect()) .then(() => console.log('Match seed successfully.')) - .catch(err => console.log(err)); \ No newline at end of file + .catch(err => console.log(err)); diff --git a/src/seed/messagesSeeder.js b/src/seed/messagesSeeder.js index 0660781..e3cb905 100644 --- a/src/seed/messagesSeeder.js +++ b/src/seed/messagesSeeder.js @@ -2,9 +2,9 @@ import faker from 'faker'; import mongoose from 'mongoose'; import Message from '../models/Message'; -mongoose.connect('mongodb://localhost:27017/FindMates', { useNewUrlParser: true }); +mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true}); mongoose.set('useCreateIndex', true); -Message.deleteMany({}, err=> console.log(err)); +Message.deleteMany({}, err => console.log(err)); const recipient = mongoose.Types.ObjectId(); const sender = mongoose.Types.ObjectId(); @@ -19,4 +19,4 @@ const message = new Message({ message.save() .then(() => mongoose.disconnect()) .then(() => console.log('Message seed successfully.')) - .catch(err => console.log(err)); \ No newline at end of file + .catch(err => console.log(err)); diff --git a/src/seed/pendingMatchesSeeder.js b/src/seed/pendingMatchesSeeder.js index 3bbd551..2c97487 100644 --- a/src/seed/pendingMatchesSeeder.js +++ b/src/seed/pendingMatchesSeeder.js @@ -1,9 +1,9 @@ import mongoose from 'mongoose'; import PendingMatch from '../models/PendingMatch'; -mongoose.connect('mongodb://localhost:27017/FindMates', { useNewUrlParser: true }); +mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true}); mongoose.set('useCreateIndex', true); -PendingMatch.deleteMany({}, err=> console.log(err)); +PendingMatch.deleteMany({}, err => console.log(err)); const user1 = mongoose.Types.ObjectId(); const user2 = mongoose.Types.ObjectId(); @@ -27,4 +27,4 @@ pendingMatch1.save() pendingMatch2.save() .then(() => mongoose.disconnect()) .then(() => console.log('Pending match number 2 seed successfully.')) - .catch(err => console.log(err)); \ No newline at end of file + .catch(err => console.log(err)); diff --git a/src/seed/privilegedUsersSeeder.js b/src/seed/privilegedUsersSeeder.js index 1d44e3c..c9d9c3b 100644 --- a/src/seed/privilegedUsersSeeder.js +++ b/src/seed/privilegedUsersSeeder.js @@ -1,9 +1,9 @@ import mongoose from 'mongoose'; import PrivilegedUser from '../models/PrivilegedUser'; -mongoose.connect('mongodb://localhost:27017/FindMates', { useNewUrlParser: true }); +mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true}); mongoose.set('useCreateIndex', true); -PrivilegedUser.deleteMany({}, err=> console.log(err)); +PrivilegedUser.deleteMany({}, err => console.log(err)); const user = mongoose.Types.ObjectId(); @@ -14,4 +14,4 @@ const privilegedUser = new PrivilegedUser({ privilegedUser.save() .then(() => mongoose.disconnect()) .then(() => console.log('Privileged user seed successfully.')) - .catch(err => console.log(err)); \ No newline at end of file + .catch(err => console.log(err)); diff --git a/src/seed/usersSeeder.js b/src/seed/usersSeeder.js index e146f60..e43e530 100644 --- a/src/seed/usersSeeder.js +++ b/src/seed/usersSeeder.js @@ -2,9 +2,9 @@ import API from '../../testsConfig'; import mongoose from 'mongoose'; import User from '../models/User'; -mongoose.connect('mongodb://localhost:27017/FindMates', { useNewUrlParser: true }); +mongoose.connect('mongodb://localhost:27017/FindMates', {useNewUrlParser: true}); mongoose.set('useCreateIndex', true); -User.deleteMany({}, err=> console.log(err)); +User.deleteMany({}, err => console.log(err)); API.post('register', { name: 'John', diff --git a/src/seedRunner.js b/src/seedRunner.js index 8d666ad..6133164 100644 --- a/src/seedRunner.js +++ b/src/seedRunner.js @@ -1,5 +1,6 @@ import fs from 'fs'; import async from 'async'; + const exec = require('child_process').exec; // eslint-disable-line @@ -12,7 +13,7 @@ function getResults(err, data) { if (err) { return console.log(err); } - const results = data.map(function(lines){ + const results = data.map(function(lines) { return lines.join(''); }); console.log(results); diff --git a/src/server.js b/src/server.js index c5367a6..91fd6ab 100644 --- a/src/server.js +++ b/src/server.js @@ -4,4 +4,4 @@ app.set('port', process.env.PORT || 8080); const server = app.listen(app.get('port'), () => { console.log(`Listening on ${server.address().port}`); -}); \ No newline at end of file +}); diff --git a/src/validators/checkValidation.js b/src/validators/checkValidation.js index 74df4e9..a7fad67 100644 --- a/src/validators/checkValidation.js +++ b/src/validators/checkValidation.js @@ -10,4 +10,4 @@ exports.checkValidation = (req, res, next) => { }); } next(); -}; \ No newline at end of file +}; diff --git a/src/validators/matchesValidator.js b/src/validators/matchesValidator.js index 749590d..bb472cb 100644 --- a/src/validators/matchesValidator.js +++ b/src/validators/matchesValidator.js @@ -15,4 +15,4 @@ exports.validateUpdate = [ check('user1').optional().trim().matches(/^[0-9a-fA-F]{24}$/).withMessage('First user ID must be an ID.'), check('user2').optional().trim().matches(/^[0-9a-fA-F]{24}$/).withMessage('Second user ID must be an ID.'), sanitizeBody('*').escape() -]; \ No newline at end of file +]; diff --git a/src/validators/messagesValidator.js b/src/validators/messagesValidator.js index da6877c..a2d86b9 100644 --- a/src/validators/messagesValidator.js +++ b/src/validators/messagesValidator.js @@ -21,4 +21,4 @@ exports.validateUpdate = [ check('recipient').optional().trim().matches(/^[0-9a-fA-F]{24}$/).withMessage('Recipient ID must be an ID.'), check('match').optional().trim().matches(/^[0-9a-fA-F]{24}$/).withMessage('Match ID must be an ID.'), sanitizeBody('*').escape() -]; \ No newline at end of file +]; diff --git a/src/validators/pendingMatchesValidator.js b/src/validators/pendingMatchesValidator.js index 04ea5ac..356b8a9 100644 --- a/src/validators/pendingMatchesValidator.js +++ b/src/validators/pendingMatchesValidator.js @@ -19,4 +19,4 @@ exports.validateUpdate = [ check('user1Approval').optional().trim().isBoolean().withMessage('First user approval must be a boolean.'), check('user2Approval').optional().trim().isBoolean().withMessage('Second user approval must be a boolean.'), sanitizeBody('*').escape() -]; \ No newline at end of file +]; diff --git a/src/validators/privilegedUsersValidator.js b/src/validators/privilegedUsersValidator.js index 00262fb..1e85e13 100644 --- a/src/validators/privilegedUsersValidator.js +++ b/src/validators/privilegedUsersValidator.js @@ -13,4 +13,4 @@ exports.validateUpdate = [ check('role').optional().trim().not().isEmpty().withMessage('Role cannot be empty.'), check('user').optional().trim().matches(/^[0-9a-fA-F]{24}$/).withMessage('User ID must be an ID.'), sanitizeBody('*').escape() -]; \ No newline at end of file +]; diff --git a/src/validators/usersValidator.js b/src/validators/usersValidator.js index 933b9a5..153802c 100644 --- a/src/validators/usersValidator.js +++ b/src/validators/usersValidator.js @@ -1,12 +1,12 @@ -import { check } from 'express-validator/check'; -import { sanitizeBody } from 'express-validator/filter'; +import {check} from 'express-validator/check'; +import {sanitizeBody} from 'express-validator/filter'; import User from '../models/User'; import moment from 'moment'; exports.validateRegister = [ check('name').trim().not().isEmpty().withMessage('Name is required.'), check('password').trim().not().isEmpty().withMessage('Password is required.'), - check('password').trim().isLength({ min: 8 }).withMessage('Password must be at least 8 characters long.'), + check('password').trim().isLength({min: 8}).withMessage('Password must be at least 8 characters long.'), check('email').trim().not().isEmpty().withMessage('E-mail is required.'), check('email').trim().custom(value => { return User.find({'email': value}).then(user => { @@ -21,7 +21,7 @@ exports.validateRegister = [ check('birthDate').trim().not().isEmpty().withMessage('Date of birth is required.'), check('birthDate').trim().custom(value => moment(value, 'YYYY-MM-DD').isValid()).withMessage('Invalid date of birth.'), check('pictures').optional().isArray().withMessage('Invalid data format. Pass images in an array.'), - check('pictures').optional().custom(value => value.length <=3).withMessage('You can add up to 3 pictures.'), + check('pictures').optional().custom(value => value.length <= 3).withMessage('You can add up to 3 pictures.'), check('purpose').trim().not().isEmpty().withMessage('Purpose is required.'), check('purpose').trim().isIn(['Friends', 'Dating', 'For fun', 'Sex', 'Other']).withMessage('Invalid purpose.'), check('geometry').trim().not().isEmpty().withMessage('Geometry is required.'), @@ -32,7 +32,7 @@ exports.validateRegister = [ exports.validateUserUpdate = [ check('name').optional().trim().not().isEmpty().withMessage('Name cannot be empty.'), check('password').optional().trim().not().isEmpty().withMessage('Password cannot be empty.'), - check('password').optional().trim().isLength({ min: 8 }).withMessage('Password must be at least 8 characters long.'), + check('password').optional().trim().isLength({min: 8}).withMessage('Password must be at least 8 characters long.'), check('email').optional().trim().not().isEmpty().withMessage('E-mail cannot be empty.'), check('email').optional().trim().isEmail().withMessage('Invalid e-mail address.'), check('phone').optional().trim().not().isEmpty().withMessage('Phone number cannot be empty.'), @@ -40,10 +40,10 @@ exports.validateUserUpdate = [ check('birthDate').optional().trim().not().isEmpty().withMessage('Date of birth cannot be empty.'), check('birthDate').optional().trim().custom(value => moment(value, 'YYYY-MM-DD').isValid()).withMessage('Invalid date of birth.'), check('pictures').optional().isArray().withMessage('Invalid data format.'), - check('pictures').optional().custom(value => value.length <=3).withMessage('You can add up to 3 pictures.'), + check('pictures').optional().custom(value => value.length <= 3).withMessage('You can add up to 3 pictures.'), check('purpose').optional().trim().not().isEmpty().withMessage('Purpose is required.'), check('purpose').optional().trim().isIn(['Friends', 'Dating', 'For fun', 'Sex', 'Other']).withMessage('Invalid purpose.'), check('geometry').optional().trim().not().isEmpty().withMessage('Geometry is required.'), check('geometry').optional().custom(value => typeof value === 'object' && value.hasOwnProperty('coordinates')).withMessage('Invalid data format. Pass coordinates in an object.'), sanitizeBody('*').escape() -]; \ No newline at end of file +]; diff --git a/tests/unit/auth/authController.test.js b/tests/unit/auth/authController.test.js index d4d0775..f619d23 100644 --- a/tests/unit/auth/authController.test.js +++ b/tests/unit/auth/authController.test.js @@ -1,5 +1,5 @@ import authController from '../../../src/controllers/authController'; -import { expect } from 'chai'; +import {expect} from 'chai'; import sinon from 'sinon'; import faker from 'faker'; @@ -13,12 +13,12 @@ describe('Test login method', () => { user: user }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - authController.login(req,res).then(() => { + authController.login(req, res).then(() => { expect(res.json.firstCall.lastArg.token).to.be.a('string'); done(); }); @@ -45,12 +45,12 @@ describe('Test register method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - authController.register(req,res).then(() => { + authController.register(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -60,14 +60,14 @@ describe('Test register method', () => { body: {} }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - authController.register(req,res).then(() => { + authController.register(req, res).then(() => { expect(res.json.firstCall.lastArg.message).to.equal('No username was given'); done(); }); }); -}); \ No newline at end of file +}); diff --git a/tests/unit/controllers/errorTicketsController.test.js b/tests/unit/controllers/errorTicketsController.test.js index 7b54508..7c5264e 100644 --- a/tests/unit/controllers/errorTicketsController.test.js +++ b/tests/unit/controllers/errorTicketsController.test.js @@ -1,8 +1,8 @@ import errorTicketController from '../../../src/controllers/errorTicketController'; import sinon from 'sinon'; -import { expect } from 'chai'; +import {expect} from 'chai'; -let idStore= ''; +let idStore = ''; describe('Test errorTicketsController getAll method', () => { it('getAll should return an 404 error', done => { @@ -13,12 +13,12 @@ describe('Test errorTicketsController getAll method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.getAll(req,res).then(() => { + errorTicketController.getAll(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -35,13 +35,13 @@ describe('Test errorTicketsController getAll method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.createNew(req,res).then(() => { - errorTicketController.getAll(req,res).then(() => { + errorTicketController.createNew(req, res).then(() => { + errorTicketController.getAll(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -58,12 +58,12 @@ describe('Test errorTicketsController createNew method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.createNew(req,res).then(() => { + errorTicketController.createNew(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); idStore = res.json.firstCall.lastArg.data._id; done(); @@ -77,12 +77,12 @@ describe('Test errorTicketsController createNew method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.createNew(req,res).then(() => { + errorTicketController.createNew(req, res).then(() => { throw 'Emit an error!'; }).catch(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); @@ -91,7 +91,7 @@ describe('Test errorTicketsController createNew method', () => { }); }); -describe('Test errorTicketsController getResourcesOfUser method',() => { +describe('Test errorTicketsController getResourcesOfUser method', () => { it('getResourcesOfUser should return an 404 error', done => { const req = { params: { @@ -99,12 +99,12 @@ describe('Test errorTicketsController getResourcesOfUser method',() => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.getResourcesOfUser(req,res).then(() => { + errorTicketController.getResourcesOfUser(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -116,12 +116,12 @@ describe('Test errorTicketsController getResourcesOfUser method',() => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.getResourcesOfUser(req,res).then(() => { + errorTicketController.getResourcesOfUser(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -136,12 +136,12 @@ describe('Test errorTicketsController getOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.getOne(req,res).then(() => { + errorTicketController.getOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -153,12 +153,12 @@ describe('Test errorTicketsController getOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.getOne(req,res).then(() => { + errorTicketController.getOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -173,12 +173,12 @@ describe('Test errorTicketsController deleteOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.deleteOne(req,res).then(() => { + errorTicketController.deleteOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -190,12 +190,12 @@ describe('Test errorTicketsController deleteOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.deleteOne(req,res).then(() => { + errorTicketController.deleteOne(req, res).then(() => { throw 'Emit an error'; }).catch(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); @@ -209,12 +209,12 @@ describe('Test errorTicketsController deleteOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - errorTicketController.deleteOne(req,res).then(() => { + errorTicketController.deleteOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); diff --git a/tests/unit/controllers/privilegedUsersController.test.js b/tests/unit/controllers/privilegedUsersController.test.js index 08f5acc..2f820a4 100644 --- a/tests/unit/controllers/privilegedUsersController.test.js +++ b/tests/unit/controllers/privilegedUsersController.test.js @@ -1,8 +1,8 @@ import privilegedUserController from '../../../src/controllers/privilegedUserController'; import sinon from 'sinon'; -import { expect } from 'chai'; +import {expect} from 'chai'; -let idStore= ''; +let idStore = ''; describe('Test privilegedUsersController getAll method', () => { it('getAll should return an 404 error', done => { @@ -13,12 +13,12 @@ describe('Test privilegedUsersController getAll method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.getAll(req,res).then(() => { + privilegedUserController.getAll(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -35,13 +35,13 @@ describe('Test privilegedUsersController getAll method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.createNew(req,res).then(() => { - privilegedUserController.getAll(req,res).then(() => { + privilegedUserController.createNew(req, res).then(() => { + privilegedUserController.getAll(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -58,12 +58,12 @@ describe('Test privilegedUsersController createNew method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.createNew(req,res).then(() => { + privilegedUserController.createNew(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); idStore = res.json.firstCall.lastArg.data._id; done(); @@ -77,12 +77,12 @@ describe('Test privilegedUsersController createNew method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.createNew(req,res).then(() => { + privilegedUserController.createNew(req, res).then(() => { throw 'Emit an error!'; }).catch(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); @@ -91,7 +91,7 @@ describe('Test privilegedUsersController createNew method', () => { }); }); -describe('Test privilegedUsersController getResourcesOfUser method',() => { +describe('Test privilegedUsersController getResourcesOfUser method', () => { it('getResourcesOfUser should return an 404 error', done => { const req = { params: { @@ -99,12 +99,12 @@ describe('Test privilegedUsersController getResourcesOfUser method',() => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.getResourcesOfUser(req,res).then(() => { + privilegedUserController.getResourcesOfUser(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -116,12 +116,12 @@ describe('Test privilegedUsersController getResourcesOfUser method',() => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.getResourcesOfUser(req,res).then(() => { + privilegedUserController.getResourcesOfUser(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -133,12 +133,12 @@ describe('Test privilegedUsersController getResourcesOfUser method',() => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.getResourcesOfUser(req,res).then(() => { + privilegedUserController.getResourcesOfUser(req, res).then(() => { expect(res.json.firstCall.lastArg.role).to.equal('User'); done(); }); @@ -153,12 +153,12 @@ describe('Test privilegedUsersController getOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.getOne(req,res).then(() => { + privilegedUserController.getOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -170,12 +170,12 @@ describe('Test privilegedUsersController getOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.getOne(req,res).then(() => { + privilegedUserController.getOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -193,12 +193,12 @@ describe('Test privilegedUsersController updateOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.updateOne(req,res).then(() => { + privilegedUserController.updateOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -210,12 +210,12 @@ describe('Test privilegedUsersController updateOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.updateOne(req,res).then(() => { + privilegedUserController.updateOne(req, res).then(() => { throw 'Emit an error'; }).catch(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); @@ -232,12 +232,12 @@ describe('Test privilegedUsersController updateOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.updateOne(req,res).then(() => { + privilegedUserController.updateOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); @@ -252,12 +252,12 @@ describe('Test privilegedUsersController deleteOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.deleteOne(req,res).then(() => { + privilegedUserController.deleteOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); done(); }); @@ -269,12 +269,12 @@ describe('Test privilegedUsersController deleteOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.deleteOne(req,res).then(() => { + privilegedUserController.deleteOne(req, res).then(() => { throw 'Emit an error'; }).catch(() => { expect(res.json.firstCall.lastArg.success).to.equal(false); @@ -288,12 +288,12 @@ describe('Test privilegedUsersController deleteOne method', () => { } }; const res = { - status: function () { + status: function() { return this; }, json: sinon.spy() }; - privilegedUserController.deleteOne(req,res).then(() => { + privilegedUserController.deleteOne(req, res).then(() => { expect(res.json.firstCall.lastArg.success).to.equal(true); done(); }); diff --git a/tests/unit/databaseConnection.test.js b/tests/unit/databaseConnection.test.js index ccef111..a81ea15 100644 --- a/tests/unit/databaseConnection.test.js +++ b/tests/unit/databaseConnection.test.js @@ -1,9 +1,10 @@ import mongoose from 'mongoose'; import dotenv from 'dotenv'; + dotenv.config({path: '.env'}); before(done => { - mongoose.connect(process.env.DB_HOST, {useNewUrlParser: true },() => { + mongoose.connect(process.env.DB_HOST, {useNewUrlParser: true}, () => { mongoose.connection.db.dropDatabase(); }); mongoose.set('useCreateIndex', true); @@ -13,4 +14,4 @@ before(done => { after(done => { mongoose.disconnect(); done(); -}); \ No newline at end of file +}); diff --git a/testsConfig.js b/testsConfig.js index 2b2ed1a..c430e85 100644 --- a/testsConfig.js +++ b/testsConfig.js @@ -2,4 +2,4 @@ import axios from 'axios'; export default axios.create({ baseURL: 'http://localhost:8080/' -}); \ No newline at end of file +});