From 8bc111d9fafe42a43bf84a5b330821dd51780cfb Mon Sep 17 00:00:00 2001 From: Josh Burman Date: Thu, 14 Mar 2019 18:54:19 -0400 Subject: [PATCH] test for snyk --- src/helpers/clientHelpers.ts | 11 ++++++++ src/logger.ts | 11 +++----- src/server.ts | 52 +++++++++++++++++++++--------------- 3 files changed, 45 insertions(+), 29 deletions(-) create mode 100644 src/helpers/clientHelpers.ts diff --git a/src/helpers/clientHelpers.ts b/src/helpers/clientHelpers.ts new file mode 100644 index 0000000..bab885a --- /dev/null +++ b/src/helpers/clientHelpers.ts @@ -0,0 +1,11 @@ +module.exports = { + clientExists: function (id: number) { + for (let client of this.clients) { + if (client.id == id) { + return client; + } + } + + return null; + } +} diff --git a/src/logger.ts b/src/logger.ts index 404bded..e1f41d2 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -5,12 +5,10 @@ var path = require('path'); var logPath = './logs/'; const tsFormat = () => (new Date().toISOString()); +const logFormat = format.combine(format.timestamp(), format.json()) const errorLog = createLogger({ - format: format.combine( - format.timestamp(), - format.json() - ), + format: logFormat, transports: [ new transports.File({ filename: path.join(logPath, 'errors.log'), @@ -21,10 +19,7 @@ const errorLog = createLogger({ }); const accessLog = createLogger({ - format: format.combine( - format.timestamp(), - format.json() - ), + format: logFormat, transports: [ new transports.File({ filename: path.join(logPath, 'access.log'), diff --git a/src/server.ts b/src/server.ts index 64d6e1b..8a4d89d 100755 --- a/src/server.ts +++ b/src/server.ts @@ -29,7 +29,7 @@ application.use('', routes); let clientManager = new ClientManager(); let channelManager = new ChannelManager(); -function startServer() { +function connectionListener() { wss.on('connection', (ws: WebSocket, request: object, args: string) => { var data = JSON.parse(args).data logger.accessLog.info(`Client Connected: ${data.user_id}`); @@ -54,48 +54,58 @@ function startServer() { ws.send('Hi there, welcome to braid, Measures Web Socket server.\nConnecting all our services!'); }); +} +function verifyConnection(request: any) { + return new Promise((resolve, reject) => { + var data = url.parse(request.url, true).query; + var token = data.token || (app.environment == 'development' ? app.devToken : ''); + var accepted = true; + var result: string; + + jwt.verify(token, app.secret, app.signOptions, function(err, decoded) { + if (err) { + console.log(err); + accepted = false; + } + + result = JSON.stringify(decoded) + accepted ? resolve(result) : reject('rejected'); + }); + }); +} + +function serverUpgrade() { server.on('upgrade', async function upgrade(request, socket, head) { let args: {}; try { - args = await verifyConnection() + args = await verifyConnection(request); } catch (e) { socket.destroy(); logger.accessLog.info('Connection Terminated'); return; } - function verifyConnection() { - return new Promise((resolve, reject) => { - var data = url.parse(request.url, true).query; - var token = data.token || (app.environment == 'development' ? app.devToken : ''); - var accepted = true; - var result: string; - - jwt.verify(token, app.secret, app.signOptions, function(err, decoded) { - if (err) { - console.log(err); - accepted = false; - } - - result = JSON.stringify(decoded) - accepted ? resolve(result) : reject('rejected'); - }); - }); - } - wss.handleUpgrade(request, socket, head, function done(ws) { wss.emit('connection', ws, request, args); }); }); +} +function listenForConnection() { server.listen(app.port, () => { console.log(`Braid v${app.version} is running!\n`); logger.accessLog.info(`Braid v${app.version} is running!\n`); }); } +function startServer() { + connectionListener(); + serverUpgrade(); + listenForConnection(); +} + startServer(); module.exports = {