diff --git a/src/clients/clientBase.ts b/src/clients/clientBase.ts index 9839ccd..febb488 100644 --- a/src/clients/clientBase.ts +++ b/src/clients/clientBase.ts @@ -25,7 +25,7 @@ class ClientBase { this.channel = null; this.clientManager = clientManager; this.channelManager = channelManager; - this.roles = ['receiver']; + this.roles = data.user_roles ? data.user_roles : ['receiver']; this.messageListener = (message: any) => { if (this.channel) { logger.accessLog.info(`starting message transaction on channel ${this.channel.id}: `, {message}); @@ -33,6 +33,8 @@ class ClientBase { this.messageTransaction(message); } }; + + logger.accessLog.info('Client Created', {data}); } getData() { diff --git a/src/clients/types/customClient.ts b/src/clients/types/customClient.ts index a3e552d..74a8eb7 100644 --- a/src/clients/types/customClient.ts +++ b/src/clients/types/customClient.ts @@ -1,16 +1,5 @@ import ClientBase from '../clientBase'; -import ClientManager from '../../clientManager'; -import ChannelManager from '../../channelManager'; -import * as WebSocket from 'ws'; -const logger = require('../../logger'); - -class CustomClient extends ClientBase { - constructor(data: any, ws: WebSocket, channelManager: ChannelManager, clientManager: ClientManager) { - super(data, ws, channelManager, clientManager); - this.roles = data.user_roles; - logger.accessLog.info('Custom Client Created', {data}); - } -} +class CustomClient extends ClientBase {} export default CustomClient; diff --git a/src/clients/types/privateClient.ts b/src/clients/types/privateClient.ts index 3254d20..a899e76 100644 --- a/src/clients/types/privateClient.ts +++ b/src/clients/types/privateClient.ts @@ -1,16 +1,5 @@ -import * as WebSocket from 'ws'; import ClientBase from '../clientBase'; -import ClientManager from '../../clientManager'; -import ChannelManager from '../../channelManager'; -const logger = require('../../logger'); - -class PrivateClient extends ClientBase { - constructor(data: any, ws: WebSocket, channelManager: ChannelManager, clientManager: ClientManager) { - super(data, ws, channelManager, clientManager); - this.roles = data.user_roles; - logger.accessLog.info('Private Client Created', {data}); - } -} +class PrivateClient extends ClientBase {} export default PrivateClient; diff --git a/src/server.ts b/src/server.ts index 562cae6..3e2ae41 100755 --- a/src/server.ts +++ b/src/server.ts @@ -26,12 +26,10 @@ function connectionManager() { ws.close(); } else { const data = result.data; - var client: PublicClient|PrivateClient|CustomClient|null; + let client: PublicClient|PrivateClient|CustomClient|null; logger.accessLog.info(`Client Connected: ${data.user_id}`); - if (!channelManager.channelExists(data.channel)) { - channelManager.createChannel(data); - } + if (!channelManager.channelExists(data.channel)) channelManager.createChannel(data); if (clientManager.clientExists(data.user_id)) { client = clientManager.getClient(data.user_id); @@ -43,11 +41,8 @@ function connectionManager() { client = clientManager.addClient(data, channelManager, ws); } - if (client != null) { - channelManager.addClientToChannel(client, data.channel); - } + if (client != null) channelManager.addClientToChannel(client, data.channel); - // remove any channels that have no users in them logger.accessLog.info(`Purging empty channels...`); channelManager.purgeEmptyChannels();