foxbit-api
Version:
Package NPM for Foxbit API.
78 lines (71 loc) • 2.18 kB
JavaScript
const utils = require("./utils");
const variables = require("./variables");
const authentication = require("./authentication");
const userInfo = require("./userInfo");
//Event Receiving Message
variables.ws.on("message", function incoming(data) {
dealMessage(data);
});
//Event Error Message
variables.ws.on("error", function() {
utils.consoleMessage("WebService", "error! ");
});
//Event Close Message
variables.ws.on("close", function() {
utils.consoleMessage("WebService", "close! ");
});
//Event End Message
variables.ws.on("end", function(data) {
utils.consoleMessage("WebService", "end! " + data);
});
//Function DealMessage
let dealMessage = message => {
let ret = JSON.parse(message);
let res = JSON.parse(ret.o);
//console.log(message);
console.log("Endpoint: " + ret.n);
switch (ret.n) {
case "Authenticate2FA":
let paramO;
if (ret.o != undefined) {
paramO = JSON.parse(ret.o);
variables.sessionToken = JSON.stringify(paramO.SessionToken);
variables.userId = parseInt(paramO.UserId);
userInfo.GetUserInfo();
variables.eventEmitter.emit("Connected", res);
}
break;
case "WebAuthenticateUser":
if (res.Authenticated) {
if (res.Requires2FA) {
authentication.Authenticate2FA();
} else {
variables.eventEmitter.emit("Connected", res);
variables.userId = parseInt(res.UserId);
userInfo.GetUserInfo();
}
} else {
variables.eventEmitter.emit("Connected", res);
}
break;
case "GetUserInfo":
variables.OMSId = res.OMSId;
if (variables.accountId === 0) {
variables.accountId = res.AccountId;
variables.eventEmitter.emit("Ready", true);
} else {
variables.eventEmitter.emit("GetUserInfo", res);
}
break;
default:
if (res) {
variables.eventEmitter.emit(ret.n, JSON.parse(ret.o));
} else {
variables.eventEmitter.emit(ret.n, res);
}
}
};
module.exports = {
dealMessage,
eventEmitter: variables.eventEmitter
};