This repository has been archived by the owner on Aug 28, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Swap out ESLint for Standard, and make everything compliant.
P.S. I have no clue how to use NPM, so package stuff might be broken.
- Loading branch information
Logan Glasson
committed
Jul 20, 2018
1 parent
fd08203
commit a098f8b
Showing
59 changed files
with
1,951 additions
and
1,582 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,37 @@ | ||
const winston = require( 'winston' ) | ||
const jwt = require( 'jsonwebtoken' ) | ||
const winston = require('winston') | ||
const jwt = require('jsonwebtoken') | ||
|
||
const User = require( '../../../../models/User' ) | ||
const User = require('../../../../models/User') | ||
|
||
module.exports = function( req, res ) { | ||
winston.debug( 'register new user route' ) | ||
if ( !req.body.email ) { res.status( 400 ); return res.send( { success: false, message: 'Do not fuck with us. Give us your email.' } ) } | ||
if ( !req.body.password ) { res.status( 400 ); return res.send( { success: false, message: 'Passwords are a necessary evil, fam.' } ) } | ||
module.exports = function (req, res) { | ||
winston.debug('register new user route') | ||
if (!req.body.email) { res.status(400); return res.send({ success: false, message: 'Do not fuck with us. Give us your email.' }) } | ||
if (!req.body.password) { res.status(400); return res.send({ success: false, message: 'Passwords are a necessary evil, fam.' }) } | ||
|
||
let myUser = new User( { | ||
let myUser = new User({ | ||
email: req.body.email, | ||
password: req.body.password, | ||
company: req.body.company, | ||
name: req.body.name ? req.body.name : 'Anonymous', | ||
surname: req.body.surname ? req.body.surname : '', | ||
apitoken: null | ||
} ) | ||
}) | ||
|
||
let sessionSecret = process.env.SESSION_SECRET | ||
|
||
User.findOne( { 'email': req.body.email } ) | ||
.then( user => { | ||
if ( user ) throw new Error( 'Email taken. Please login. Thanks!' ) | ||
myUser.apitoken = 'JWT ' + jwt.sign( { _id: myUser._id }, sessionSecret, { expiresIn: '2y' } ) | ||
return myUser.save( ) | ||
} ) | ||
.then( savedUser => { | ||
let token = 'JWT ' + jwt.sign( { _id: myUser._id, name: myUser.name }, sessionSecret, { expiresIn: '24h' } ) | ||
return res.send( { success: true, message: 'User saved. Redirect to login.', resource: { apitoken: savedUser.apitoken, token: token, email: savedUser.email } } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 400 ) | ||
return res.send( { success: false, message: err.message } ) | ||
} ) | ||
User.findOne({ 'email': req.body.email }) | ||
.then(user => { | ||
if (user) throw new Error('Email taken. Please login. Thanks!') | ||
myUser.apitoken = 'JWT ' + jwt.sign({ _id: myUser._id }, sessionSecret, { expiresIn: '2y' }) | ||
return myUser.save() | ||
}) | ||
.then(savedUser => { | ||
let token = 'JWT ' + jwt.sign({ _id: myUser._id, name: myUser.name }, sessionSecret, { expiresIn: '24h' }) | ||
return res.send({ success: true, message: 'User saved. Redirect to login.', resource: { apitoken: savedUser.apitoken, token: token, email: savedUser.email } }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(400) | ||
return res.send({ success: false, message: err.message }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,16 @@ | ||
const winston = require( 'winston' ) | ||
const winston = require('winston') | ||
|
||
const User = require( '../../../../models/User' ) | ||
const User = require('../../../../models/User') | ||
|
||
module.exports = function( req, res ) { | ||
User.findOne( { _id: req.user._id }, '-password' ) | ||
.then( myUser => { | ||
if ( !myUser ) throw new Error( 'no user found.' ) | ||
res.send( { success: true, resource: myUser } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 400 ) | ||
res.send( { success: false, message: err.toString( ) } ) | ||
} ) | ||
module.exports = function (req, res) { | ||
User.findOne({ _id: req.user._id }, '-password') | ||
.then(myUser => { | ||
if (!myUser) throw new Error('no user found.') | ||
res.send({ success: true, resource: myUser }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(400) | ||
res.send({ success: false, message: err.toString() }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,34 @@ | ||
const winston = require( 'winston' ) | ||
const jwt = require( 'jsonwebtoken' ) | ||
const winston = require('winston') | ||
const jwt = require('jsonwebtoken') | ||
|
||
const User = require( '../../../../models/User' ) | ||
const User = require('../../../../models/User') | ||
|
||
module.exports = function( req, res ) { | ||
if ( !req.body.email ) return res.send( { success: false, message: 'Do not fuck with us' } ) | ||
if ( !req.body.password ) return res.send( { success: false, message: 'Do not fuck with us' } ) | ||
module.exports = function (req, res) { | ||
if (!req.body.email) return res.send({ success: false, message: 'Do not fuck with us' }) | ||
if (!req.body.password) return res.send({ success: false, message: 'Do not fuck with us' }) | ||
|
||
let sessionSecret = process.env.SESSION_SECRET | ||
|
||
User.findOne( { 'email': req.body.email.toLowerCase( ) } ) | ||
.then( myUser => { | ||
if ( !myUser ) throw 'Invalid credentials.' | ||
myUser.validatePassword( req.body.password, myUser.password, match => { | ||
if ( match === false ) { | ||
res.status( 401 ) | ||
return res.send( { success: false, message: 'Invalid credentials.' } ) | ||
User.findOne({ 'email': req.body.email.toLowerCase() }) | ||
.then(myUser => { | ||
if (!myUser) throw new Error('Invalid credentials.') | ||
myUser.validatePassword(req.body.password, myUser.password, match => { | ||
if (match === false) { | ||
res.status(401) | ||
return res.send({ success: false, message: 'Invalid credentials.' }) | ||
} | ||
myUser.logins.push( { date: Date.now( ) } ) | ||
myUser.save( ) | ||
let token = 'JWT ' + jwt.sign( { _id: myUser._id, name: myUser.name }, sessionSecret, { expiresIn: '24h' } ) | ||
let userObject = myUser.toObject( ) | ||
myUser.logins.push({ date: Date.now() }) | ||
myUser.save() | ||
let token = 'JWT ' + jwt.sign({ _id: myUser._id, name: myUser.name }, sessionSecret, { expiresIn: '24h' }) | ||
let userObject = myUser.toObject() | ||
userObject.token = token | ||
delete userObject[ 'password' ] | ||
res.send( { success: true, message: 'You have logged in.', resource: userObject } ) | ||
} ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 401 ) | ||
res.send( { success: false, message: err } ) | ||
} ) | ||
res.send({ success: true, message: 'You have logged in.', resource: userObject }) | ||
}) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(401) | ||
res.send({ success: false, message: err }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,24 @@ | ||
'use strict' | ||
const winston = require( 'winston' ) | ||
const winston = require('winston') | ||
|
||
const User = require( '../../../../models/User' ) | ||
const User = require('../../../../models/User') | ||
|
||
module.exports = function( req, res ) { | ||
if ( !req.params.userId ) { | ||
res.status( 400 ) | ||
res.send( { success: false, message: "Malformed request." } ) | ||
module.exports = function (req, res) { | ||
if (!req.params.userId) { | ||
res.status(400) | ||
res.send({ success: false, message: 'Malformed request.' }) | ||
} | ||
|
||
let projection = '_id name surname company' + ( req.app.get( 'expose emails' ) ? ' email' : '' ) | ||
let projection = '_id name surname company' + (req.app.get('expose emails') ? ' email' : '') | ||
|
||
User.findOne( { _id: req.params.userId }, projection ) | ||
.then( user => { | ||
if ( !user ) throw new Error( 'no users found.' ) | ||
res.send( { success: true, resource: user } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 400 ) | ||
res.send( { success: false, message: err.toString( ) } ) | ||
} ) | ||
User.findOne({ _id: req.params.userId }, projection) | ||
.then(user => { | ||
if (!user) throw new Error('no users found.') | ||
res.send({ success: true, resource: user }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(400) | ||
res.send({ success: false, message: err.toString() }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,29 @@ | ||
'use strict' | ||
const winston = require( 'winston' ) | ||
const winston = require('winston') | ||
|
||
const User = require( '../../../../models/User' ) | ||
const User = require('../../../../models/User') | ||
|
||
module.exports = function( req, res ) { | ||
User.findOne( { _id: req.user._id }, '-password' ) | ||
.then( user => { | ||
if ( !user ) throw new Error( 'no user found.' ) | ||
module.exports = function (req, res) { | ||
User.findOne({ _id: req.user._id }, '-password') | ||
.then(user => { | ||
if (!user) throw new Error('no user found.') | ||
user.name = req.body.name ? req.body.name : user.name | ||
user.surname = req.body.surname ? req.body.surname : user.surname | ||
user.company = req.body.company ? req.body.company : user.company | ||
user.email = req.body.email ? req.body.email : user.email | ||
|
||
user.markModified( 'name' ) | ||
user.markModified( 'surname' ) | ||
user.markModified( 'company' ) | ||
user.markModified( 'email' ) | ||
return user.save( ) | ||
} ) | ||
.then( ( ) => { | ||
res.send( { success: true, message: 'User profile updated.' } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 400 ) | ||
res.send( { success: false, message: err.toString( ) } ) | ||
} ) | ||
user.markModified('name') | ||
user.markModified('surname') | ||
user.markModified('company') | ||
user.markModified('email') | ||
return user.save() | ||
}) | ||
.then(() => { | ||
res.send({ success: true, message: 'User profile updated.' }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(400) | ||
res.send({ success: false, message: err.toString() }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,27 @@ | ||
'use strict' | ||
const winston = require( 'winston' ) | ||
const winston = require('winston') | ||
|
||
const User = require( '../../../../models/User' ) | ||
const User = require('../../../../models/User') | ||
|
||
// from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions | ||
const escapeRegExp = ( string ) => string.replace( /[.*+?^${}()|[\]\\]/g, '\\$&' ) // $& means the whole matched string | ||
const escapeRegExp = (string) => string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string | ||
|
||
module.exports = function( req, res ) { | ||
module.exports = function (req, res) { | ||
let conditions = {} | ||
if ( req.body.name ) conditions.name = { '$regex': escapeRegExp( req.body.name ), '$options': 'i' } | ||
if ( req.body.surname ) conditions.surname = { '$regex': escapeRegExp( req.body.surname ), '$options': 'i' } | ||
if ( req.body.company ) conditions.company = { '$regex': escapeRegExp( req.body.company ), '$options': 'i' } | ||
if (req.body.name) conditions.name = { '$regex': escapeRegExp(req.body.name), '$options': 'i' } | ||
if (req.body.surname) conditions.surname = { '$regex': escapeRegExp(req.body.surname), '$options': 'i' } | ||
if (req.body.company) conditions.company = { '$regex': escapeRegExp(req.body.company), '$options': 'i' } | ||
|
||
let projection = '_id name surname company' + ( req.app.get( 'expose emails' ) ? ' email' : '' ) | ||
let projection = '_id name surname company' + (req.app.get('expose emails') ? ' email' : '') | ||
|
||
User.find( conditions, projection ).limit( 5 ) | ||
.then( myUsers => { | ||
if ( !myUsers ) throw new Error( 'no users found.' ) | ||
res.send( { success: true, resources: myUsers } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 400 ) | ||
res.send( { success: false, message: err.toString( ) } ) | ||
} ) | ||
User.find(conditions, projection).limit(5) | ||
.then(myUsers => { | ||
if (!myUsers) throw new Error('no users found.') | ||
res.send({ success: true, resources: myUsers }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(400) | ||
res.send({ success: false, message: err.toString() }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,26 @@ | ||
'use strict' | ||
const winston = require( 'winston' ) | ||
const winston = require('winston') | ||
|
||
const Client = require( '../../../../models/UserAppClient' ) | ||
const PermissionCheck = require( '../middleware/PermissionCheck' ) | ||
const Client = require('../../../../models/UserAppClient') | ||
const PermissionCheck = require('../middleware/PermissionCheck') | ||
|
||
module.exports = ( req, res ) => { | ||
if ( !req.params.clientId ) { | ||
res.status( 400 ) | ||
return res.send( { success: false, message: 'No stream id provided.' } ) | ||
module.exports = (req, res) => { | ||
if (!req.params.clientId) { | ||
res.status(400) | ||
return res.send({ success: false, message: 'No stream id provided.' }) | ||
} | ||
|
||
Client.findOne( { _id: req.params.clientId } ) | ||
.then( client => PermissionCheck( req.user, 'delete', client ) ) | ||
.then( client => { | ||
return client.remove( ) | ||
} ) | ||
.then( ( ) => { | ||
return res.send( { success: true, message: 'Client was deleted! Bye bye data.' } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( err.message === 'Unauthorized. Please log in.' ? 401 : 404 ) | ||
res.send( { success: false, message: err.toString( ) } ) | ||
} ) | ||
Client.findOne({ _id: req.params.clientId }) | ||
.then(client => PermissionCheck(req.user, 'delete', client)) | ||
.then(client => { | ||
return client.remove() | ||
}) | ||
.then(() => { | ||
return res.send({ success: true, message: 'Client was deleted! Bye bye data.' }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(err.message === 'Unauthorized. Please log in.' ? 401 : 404) | ||
res.send({ success: false, message: err.toString() }) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
const winston = require( 'winston' ) | ||
const winston = require('winston') | ||
|
||
const Client = require( '../../../../models/UserAppClient' ) | ||
const PermissionCheck = require( '../middleware/PermissionCheck' ) | ||
const Client = require('../../../../models/UserAppClient') | ||
const PermissionCheck = require('../middleware/PermissionCheck') | ||
|
||
module.exports = ( req, res ) => { | ||
if ( !req.params.clientId ) { | ||
res.status( 400 ) | ||
return res.send( { success: false, message: 'Malformed request.'} ) | ||
module.exports = (req, res) => { | ||
if (!req.params.clientId) { | ||
res.status(400) | ||
return res.send({ success: false, message: 'Malformed request.' }) | ||
} | ||
Client.findOne( { _id: req.params.clientId } ) | ||
.then( result => PermissionCheck( req.user, 'read', result ) ) | ||
.then( result => { | ||
if ( !result ) throw new Error( 'No client found.' ) | ||
res.send( { success: true, message: 'Client found.', resource: result } ) | ||
} ) | ||
.catch( err => { | ||
winston.error( err ) | ||
res.status( 400 ) | ||
res.send( { success: false, message: err.toString() } ) | ||
} ) | ||
Client.findOne({ _id: req.params.clientId }) | ||
.then(result => PermissionCheck(req.user, 'read', result)) | ||
.then(result => { | ||
if (!result) throw new Error('No client found.') | ||
res.send({ success: true, message: 'Client found.', resource: result }) | ||
}) | ||
.catch(err => { | ||
winston.error(err) | ||
res.status(400) | ||
res.send({ success: false, message: err.toString() }) | ||
}) | ||
} |
Oops, something went wrong.