Skip to content
This repository has been archived by the owner on Aug 28, 2021. It is now read-only.

Commit

Permalink
logger updated, better transports, creating logfiles. 🧦 upgrading 🧦 w…
Browse files Browse the repository at this point in the history
…ebsockets 🧦

- allowing for rooms based on any resource id + type
- backwards compat for existing streamId based approaches
  • Loading branch information
didimitrie committed Nov 21, 2018
1 parent 3fbb851 commit f091c37
Show file tree
Hide file tree
Showing 50 changed files with 203 additions and 150 deletions.
2 changes: 1 addition & 1 deletion app/api/accounts/UserCreate.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const jwt = require( 'jsonwebtoken' )

const User = require( '../../../models/User' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/accounts/UserGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const User = require( '../../../models/User' )

Expand Down
28 changes: 16 additions & 12 deletions app/api/accounts/UserLogin.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,36 @@
const jwt = require( 'jsonwebtoken' )

const winston = require( '../../../config/logger' )
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.status( 401 ).send( { success: false, message: 'Invalid credentials.' } )
if ( !req.body.password ) return res.status( 401 ).send( { success: false, message: 'Invalid credentials.' } )

let sessionSecret = process.env.SESSION_SECRET

User.findOne( { 'email': req.body.email.toLowerCase() } )
User.findOne( { 'email': req.body.email.toLowerCase( ) } )
.then( myUser => {
if ( !myUser ) throw new Error( 'Invalid credentials.' )
if ( !myUser ) {
winston.error( 'Invalid credentials.' )
return res.status( 401 ).send( { success: false, message: 'Invalid credentials.' } )
}
myUser.validatePassword( req.body.password, myUser.password, match => {
if ( match === false ) {
res.status( 401 )
return res.send( { success: false, message: 'Invalid credentials.' } )
winston.error( 'Invalid credentials.' )
return res.status( 401 ).send( { success: false, message: 'Invalid credentials.' } )
}
myUser.logins.push( { date: Date.now() } )
myUser.save()
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()
let userObject = myUser.toObject( )
userObject.token = token
delete userObject[ 'password' ]
res.send( { success: true, message: 'You have logged in.', resource: userObject } )
} )
} )
.catch( err => {
res.status( 401 )
res.send( { success: false, message: err } )
winston.error( err )
res.status( 401 ).send( { success: false, message: err } )
} )
}
2 changes: 1 addition & 1 deletion app/api/accounts/UserProfile.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const User = require( '../../../models/User' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/accounts/UserPut.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const User = require( '../../../models/User' )

Expand Down
24 changes: 15 additions & 9 deletions app/api/accounts/UserSearch.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,33 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

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

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' }
module.exports = function( req, res ) {
let conditions = [ ]
if ( !req.body.searchString || req.body.searchString === '' || req.body.searchString.length < 3 ) {
return res.status( 400 ).send( { success: false, message: 'no search criteria present, or too short search string (must be > 2).' } )
}

let projection = '_id name surname company' + ( req.app.get( 'expose emails' ) ? ' email' : '' )
if ( req.body.searchString ) {
conditions.push( { name: { '$regex': escapeRegExp( req.body.searchString ), '$options': 'i' } } )
conditions.push( { surname: { '$regex': escapeRegExp( req.body.searchString ), '$options': 'i' } } )
conditions.push( { company: { '$regex': escapeRegExp( req.body.searchString ), '$options': 'i' } } )
}

User.find( conditions, projection ).limit( 5 )
let projection = '_id name surname company' + ( process.env.EXPOSE_EMAILS ? ' email' : '' )

User.find( { $or: conditions }, projection ).limit( 10 )
.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() } )
res.send( { success: false, message: err.toString( ) } )
} )
}
2 changes: 1 addition & 1 deletion app/api/clients/ClientDelete.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Client = require( '../../../models/UserAppClient' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/clients/ClientGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Client = require( '../../../models/UserAppClient' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/clients/ClientGetAll.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const UserAppClient = require( '../../../models/UserAppClient' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/clients/ClientPost.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const Client = require( '../../../models/UserAppClient' )

module.exports = ( req, res ) => {
Expand Down
2 changes: 1 addition & 1 deletion app/api/clients/ClientPut.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Client = require( '../../../models/UserAppClient' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentDelete.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Comment = require( '../../../models/Comment' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Comment = require( '../../../models/Comment' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentGetAll.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Comment = require( '../../../models/Comment' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentGetAssigned.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Comment = require( '../../../models/Comment' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentGetFromResource.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const PermissionCheck = require( '../middleware/PermissionCheck' )
const GetResource = require( '../middleware/GetResourceByType' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentPost.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Comment = require( '../../../models/Comment' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/comments/CommentPut.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Comment = require( '../../../models/Comment' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/middleware/BulkObjectSave.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const chalk = require( 'chalk' )
const crypto = require( 'crypto' )
const SpeckleObject = require( '../../../models/SpeckleObject' )
Expand Down
3 changes: 3 additions & 0 deletions app/api/middleware/GetResourceByType.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
const winston = require( '../../../config/logger' )
const Comment = require( '../../../models/Comment' )
const DataStream = require( '../../../models/DataStream' )
const SpeckleObject = require( '../../../models/SpeckleObject' )
const Project = require( '../../../models/Project' )

module.exports = ( type, id, populateFields ) => {
populateFields = populateFields ? populateFields : ''
switch ( type ) {
case 'stream':
case 'streams':
Expand All @@ -18,6 +20,7 @@ module.exports = ( type, id, populateFields ) => {
case 'comments':
return Comment.findOne( { _id: id } ).populate( populateFields )
default:
winston.error( `Dunno what resource that is, eh? ${type}` )
break
}
}
2 changes: 1 addition & 1 deletion app/api/middleware/PermissionCheck.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const chalk = require( 'chalk' )

const ProtectedFields = require( './ProtectedFields' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/middleware/TokenCheck.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const chalk = require( 'chalk' )
const User = require( '../../../models/User' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/objects/ObjectDelete.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const SpeckleObject = require( '../../../models/SpeckleObject' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/objects/ObjectGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const SpeckleObject = require( '../../../models/SpeckleObject' )
const PrepareQuery = require( '../middleware/PrepareQuery' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/objects/ObjectPost.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const BulkObjectSave = require( '../middleware/BulkObjectSave' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/objects/ObjectPut.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const SpeckleObject = require( '../../../models/SpeckleObject' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/objects/ObjectPutProperties.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const _ = require( 'lodash' )

const SpeckleObject = require( '../../../models/SpeckleObject' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/objects/ObjectsGetBulk.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const SpeckleObject = require( '../../../models/SpeckleObject' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/projects/ProjectDelete.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Project = require( '../../../models/Project' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/projects/ProjectGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Project = require( '../../../models/Project' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/projects/ProjectGetAll.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Project = require( '../../../models/Project' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/projects/ProjectPost.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Project = require( '../../../models/Project' )

Expand Down
4 changes: 2 additions & 2 deletions app/api/projects/ProjectPut.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const Project = require( '../../../models/Project' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand All @@ -13,7 +13,7 @@ module.exports = ( req, res ) => {
.then( resource => PermissionCheck( req.user, 'read', resource ) )
.then( resource => resource.set( req.body ).save() )
.then( resource => {
res.send( { success: true, resource: resource } )
res.send( { success: true, message: `Patched ${Object.keys(req.body)} for ${req.params.projectId}.` } )
} )
.catch( err => {
winston.error( err )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamClientsGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const q2m = require( 'query-to-mongo' )

const DataStream = require( '../../../models/DataStream' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamDelete.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )

const DataStream = require( '../../../models/DataStream' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamDiff.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const _ = require( 'lodash' )
const DataStream = require( '../../../models/DataStream' )
const PermissionCheck = require( '../middleware/PermissionCheck' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamDuplicate.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const mongoose = require( 'mongoose' )
const shortId = require( 'shortid' )

Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamGet.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const uuid = require( 'uuid/v4' )

const DataStream = require( '../../../models/DataStream' )
Expand Down
4 changes: 2 additions & 2 deletions app/api/streams/StreamGetAll.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const chalk = require( 'chalk' )
const mongoose = require( 'mongoose' )

Expand All @@ -25,7 +25,7 @@ module.exports = ( req, res ) => {
stream.canWrite = stream.canWrite.map( u => u._id )
} )
}
res.send( { success: true, message: 'Stream list for user ' + req.user._id, resources: resources } )
res.send( { success: true, message: 'Stream list returned. Contains both owned and shared with streams.', resources: resources } )
} )
.catch( err => {
winston.error( err )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamObjectsGet.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const q2m = require( 'query-to-mongo' )

const DataStream = require( '../../../models/DataStream' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamPost.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const shortId = require( 'shortid' )

const DataStream = require( '../../../models/DataStream' )
Expand Down
2 changes: 1 addition & 1 deletion app/api/streams/StreamPut.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const winston = require( 'winston' )
const winston = require( '../../../config/logger' )
const chalk = require( 'chalk' )

const DataStream = require( '../../../models/DataStream' )
Expand Down
3 changes: 1 addition & 2 deletions app/ws/ClientStore.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
'use strict'
const winston = require( 'winston' )
const winston = require( '../../config/logger' )
const chalk = require( 'chalk' )

// this is where we keep track on each process what clients are connected.
Expand Down
Loading

0 comments on commit f091c37

Please sign in to comment.