UNPKG

barrageapi

Version:

A library for sending data to Barrage, an advanced streaming analytics service from MIOsoft

83 lines (67 loc) 2.56 kB
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]); };