API changes, add documentation

This commit is contained in:
calzoneman 2015-10-25 17:20:39 -07:00
parent 7b5476874d
commit 21c3a1b3cd
6 changed files with 124 additions and 32 deletions

View file

@ -3,21 +3,45 @@ export default class IOConfiguration {
this.config = config;
}
getSocketURL() {
return this.config.urls[0];
getSocketEndpoints() {
return this.config.endpoints.slice();
}
}
IOConfiguration.fromOldConfig = function (oldConfig) {
const config = {
urls: []
endpoints: []
};
['ipv4-ssl', 'ipv4-nossl', 'ipv6-ssl', 'ipv6-nossl'].forEach(key => {
if (oldConfig.get('io.' + key)) {
config.urls.push(oldConfig.get('io.' + key));
}
});
if (oldConfig.get('io.ipv4-ssl')) {
config.endpoints.push({
url: oldConfig.get('io.ipv4-ssl'),
secure: true
});
}
if (oldConfig.get('io.ipv4-nossl')) {
config.endpoints.push({
url: oldConfig.get('io.ipv4-nossl'),
secure: false
});
}
if (oldConfig.get('io.ipv6-ssl')) {
config.endpoints.push({
url: oldConfig.get('io.ipv4-ssl'),
secure: true,
ipv6: true
});
}
if (oldConfig.get('io.ipv6-nossl')) {
config.endpoints.push({
url: oldConfig.get('io.ipv4-nossl'),
secure: false,
ipv6: true
});
}
return new IOConfiguration(config);
};

View file

@ -6,10 +6,9 @@ export default class NullClusterClient {
}
getSocketConfig(channel) {
const url = this.ioConfig.getSocketURL();
const servers = this.ioConfig.getSocketEndpoints();
return Promise.resolve({
url: url,
secure: /^(https|wss)/.test(url)
servers: servers
});
}
}

View file

@ -2,6 +2,7 @@ import IOConfiguration from '../../configuration/ioconfig';
import NullClusterClient from '../../io/cluster/nullclusterclient';
import Config from '../../config';
import CyTubeUtil from '../../utilities';
import Logger from '../../logger';
export default function initialize(app) {
const ioConfig = IOConfiguration.fromOldConfig(Config);
@ -9,13 +10,18 @@ export default function initialize(app) {
app.get('/socketconfig/:channel.json', (req, res) => {
if (!req.params.channel || !CyTubeUtil.isValidChannelName(req.params.channel)) {
return res.status(400).json({
return res.status(404).json({
error: `Channel "${req.params.channel}" does not exist.`
});
}
clusterClient.getSocketConfig(req.params.channel).then(config => {
res.json(config);
}).catch(err => {
Logger.errlog.log(err.stack);
return res.status(500).json({
error: err.message
});
});
});
}