Added the new gateway capability

This commit is contained in:
hydrabolt
2015-08-27 12:43:25 +01:00
parent 1176ca7022
commit 2137981bb9
3 changed files with 66 additions and 14 deletions

View File

@@ -120,7 +120,6 @@ var Client = (function () {
var self = this; var self = this;
this.createws();
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (self.state === 0 || self.state === 4) { if (self.state === 0 || self.state === 4) {
@@ -143,9 +142,15 @@ var Client = (function () {
} else { } else {
self.state = 2; //set state to logged in (not yet ready) self.state = 2; //set state to logged in (not yet ready)
self.token = res.body.token; //set our token self.token = res.body.token; //set our token
self.trySendConnData();
callback(null, self.token); getGateway().then(function (url) {
resolve(self.token); self.createws(url);
callback(null, self.token);
resolve(self.token);
})["catch"](function (err) {
callback(err);
reject(err);
});
} }
}); });
} else { } else {
@@ -687,13 +692,13 @@ var Client = (function () {
//def createws //def createws
}, { }, {
key: "createws", key: "createws",
value: function createws() { value: function createws(url) {
if (this.websocket) return false; if (this.websocket) return false;
var self = this; var self = this;
//good to go //good to go
this.websocket = new WebSocket(Endpoints.WEBSOCKET_HUB); this.websocket = new WebSocket(url);
//open //open
this.websocket.onopen = function () { this.websocket.onopen = function () {
@@ -1413,4 +1418,19 @@ var Client = (function () {
return Client; return Client;
})(); })();
function getGateway() {
var self = this;
return new Promise(function (resolve, reject) {
request.get(Endpoints.API + "/gateway").end(function (err, res) {
if (err) {
reject(err);
} else {
resolve(res.body.url);
}
});
});
}
module.exports = Client; module.exports = Client;

View File

@@ -132,7 +132,6 @@ class Client {
var self = this; var self = this;
this.createws();
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (self.state === 0 || self.state === 4) { if (self.state === 0 || self.state === 4) {
@@ -157,9 +156,16 @@ class Client {
} else { } else {
self.state = 2; //set state to logged in (not yet ready) self.state = 2; //set state to logged in (not yet ready)
self.token = res.body.token; //set our token self.token = res.body.token; //set our token
self.trySendConnData();
callback(null, self.token); getGateway().then(function (url) {
resolve(self.token); self.createws(url);
callback(null, self.token);
resolve(self.token);
}).catch(function (err) {
callback(err);
reject(err);
});
} }
}); });
@@ -666,14 +672,14 @@ class Client {
} }
//def createws //def createws
createws() { createws(url) {
if (this.websocket) if (this.websocket)
return false; return false;
var self = this; var self = this;
//good to go //good to go
this.websocket = new WebSocket(Endpoints.WEBSOCKET_HUB); this.websocket = new WebSocket(url);
//open //open
this.websocket.onopen = function () { this.websocket.onopen = function () {
@@ -1106,4 +1112,22 @@ class Client {
} }
function getGateway() {
var self = this;
return new Promise(function (resolve, reject) {
request
.get(`${Endpoints.API}/gateway`)
.end(function (err, res) {
if (err) {
reject(err);
} else {
resolve(res.body.url);
}
});
});
}
module.exports = Client; module.exports = Client;

View File

@@ -7,8 +7,16 @@ var mybot = new Discord.Client();
var server, channel, message, sentMessage = false; var server, channel, message, sentMessage = false;
function success1(){ //make server function init(){
console.log("preparing..."); console.log("preparing...");
}
mybot.on("ready", function(){
console.log("ready! beginning tests");
success1();
});
function success1(){ //make server
mybot.createServer("test-server", "london").then(success2).catch(error); mybot.createServer("test-server", "london").then(success2).catch(error);
} }
@@ -123,4 +131,4 @@ mybot.on("message", function(message){
}); });
mybot.login(process.env["ds_email"], process.env["ds_password"]).then(success1).catch(error); mybot.login(process.env["ds_email"], process.env["ds_password"]).then(init).catch(error);