barrageapi
Version:
A library for sending data to Barrage, an advanced streaming analytics service from MIOsoft
83 lines (67 loc) • 2.56 kB
JavaScript
var BarrageAPI = require("./index.js");
var _ = require('lodash');
var Promise = require('es6-promise').Promise;
//Map of ids to external ids
var idMap = {};
var protocol = "wss";
var portal = "/BarrageAPI/websocket";
//Copy apis from regular API
module.exports = _.clone(BarrageAPI, true);
//Remove unneeded APIs
["AddWebsocket", "SetWebsocket", "CloseAdditionalWebsockets"].forEach(function (key) {
delete module.exports[key];
});
module.exports.Init = function (url) {
if (!url) { url = protocol + "://" + "v1.databarrage.com" + portal; }
if (BarrageAPI.IsConnected()) {
BarrageAPI.CloseWebSocket();
BarrageAPI.CloseAdditionalWebsockets();
}
return BarrageAPI.SetWebsocket(url);
};
module.exports.Login = function (login, password, shouldHash){
idMap = {};
return BarrageAPI.Login(login, password, shouldHash);
};
module.exports.Logout = function (){
idMap = {};
return BarrageAPI.Logout();
};
module.exports.AvailableBarrageDBs = function () {
return BarrageAPI.AvailableBarrageDBs().then(function (dbs) {
var promises = [];
dbs.forEach(function (db) {
promises.push(BarrageAPI.AddWebsocket(db.url, protocol + "://" + db.url + portal));
idMap[db.id] = db.url;
});
return Promise.all(promises).then(function (){
return dbs;
});
});
};
module.exports.CreateBarrageDB = function (name, externalId) {
return BarrageAPI.CreateBarrageDB(name, externalId).then(function (db) {
idMap[db.id] = db.url;
return BarrageAPI.AddWebsocket(db.url, protocol + "://" + db.url + portal).then(function () {
return db;
});
});
};
module.exports.AddOrUpdateFields = function (dbId, fields) {
return BarrageAPI.AddOrUpdateFields(dbId, fields, idMap[dbId]);
};
module.exports.AddRecords = function (dbId, data, progress) {
return BarrageAPI.AddRecords(dbId, data, progress, idMap[dbId]);
};
module.exports.GetBarrageDBDetails = function (dbId) {
return BarrageAPI.GetBarrageDBDetails(dbId, idMap[dbId]);
};
module.exports.UpdateConfiguration = function (dbId, name, captureRawData, outOfOrderDelay, displayTimezone, recordDefinition) {
return BarrageAPI.UpdateConfiguration(dbId, name, captureRawData, outOfOrderDelay, displayTimezone, recordDefinition, idMap[dbId]);
};
module.exports.UpdateName = function (dbId, name) {
return BarrageAPI.UpdateName(dbId, name, idMap[dbId]);
};
module.exports.UpdateNotifications = function (dbId, notifications) {
return BarrageAPI.UpdateNotifications(dbId, notifications, idMap[dbId]);
};