Generate ID function passed in options object. Updated tests.

This commit is contained in:
Eden Tyler-Moss 2020-01-31 10:11:49 +00:00
parent 5ad788c419
commit 2eb7f9cfb1
5 changed files with 20 additions and 17 deletions

View File

@ -3,7 +3,7 @@ const cors = require('cors');
const bodyParser = require('body-parser');
const publicContent = require('../../app.json');
module.exports = ({ config, realm, messageHandler, randomId }) => {
module.exports = ({ config, realm, messageHandler }) => {
const authMiddleware = require('./middleware/auth')({ config, realm });
const app = express.Router();
@ -16,7 +16,7 @@ module.exports = ({ config, realm, messageHandler, randomId }) => {
res.send(publicContent);
});
app.use('/:key', require('./v1/public')({ config, realm, randomId }));
app.use('/:key', require('./v1/public')({ config, realm }));
app.use('/:key/:id/:token', authMiddleware, jsonParser, require('./v1/calls')({ realm, messageHandler }));
return app;

View File

@ -1,12 +1,14 @@
const express = require('express');
module.exports = ({ config, realm, randomId }) => {
module.exports = ({ config, realm }) => {
const app = express.Router();
// Retrieve guaranteed random ID.
app.get('/id', (req, res) => {
res.contentType = 'text/html';
res.send(realm.generateClientId(randomId));
res.send(realm.generateClientId(
config.genRandomId ? config.genRandomId : undefined
));
});
// Get a list of all peers for a key, enabled by the `allowDiscovery` flag.

View File

@ -6,11 +6,11 @@ const defaultConfig = require('../config');
const WebSocketServer = require('./services/webSocketServer');
const Realm = require('./models/realm');
const init = ({ app, server, options, randomId }) => {
const init = ({ app, server, options }) => {
const config = options;
const realm = new Realm();
const messageHandler = require('./messageHandler')({ realm });
const api = require('./api')({ config, realm, messageHandler, randomId });
const api = require('./api')({ config, realm, messageHandler });
const { startMessagesExpiration } = require('./services/messagesExpire')({ realm, config, messageHandler });
const checkBrokenConnections = require('./services/checkBrokenConnections')({
@ -62,7 +62,7 @@ const init = ({ app, server, options, randomId }) => {
checkBrokenConnections.start();
};
function ExpressPeerServer(server, options, randomId) {
function ExpressPeerServer(server, options) {
const app = express();
options = {
@ -80,13 +80,13 @@ function ExpressPeerServer(server, options, randomId) {
'can\'t start PeerServer');
}
init({ app, server, options, randomId });
init({ app, server, options });
});
return app;
}
function PeerServer(options = {}, callback, randomId) {
function PeerServer(options = {}, callback) {
const app = express();
options = {
@ -114,7 +114,7 @@ function PeerServer(options = {}, callback, randomId) {
server = http.createServer(app);
}
const peerjs = ExpressPeerServer(server, options, randomId);
const peerjs = ExpressPeerServer(server, options);
app.use(peerjs);
if (callback) {

View File

@ -42,19 +42,19 @@ class Realm {
this._messageQueues.delete(id);
}
generateClientId (_randomId) {
const originalRandomId = () => {
generateClientId (_genRandomId) {
const originalGenRandomId = () => {
return (Math.random().toString(36) + '0000000000000000000').substr(2, 16);
}
const randomId = typeof _randomId === 'function' ?
() => _randomId :
() => originalRandomId;
const genRandomId = _genRandomId && typeof _genRandomId === 'function' ?
() => _genRandomId :
() => originalGenRandomId;
let clientId = randomId(randomId)();
let clientId = genRandomId();
while (this.getClientById(clientId)) {
clientId = randomId();
clientId = genRandomId();
}
return clientId;

View File

@ -7,6 +7,7 @@ describe('Realm', () => {
it('should generate a 16-character ID', () => {
const realm = new Realm();
expect(realm.generateClientId().length).to.eq(16);
expect(realm.generateClientId(() => 'abcd').to.eq('abcd');
});
});