Added promises and logout

This commit is contained in:
hydrabolt
2015-08-25 11:49:59 +01:00
parent f2e3be0bad
commit 15f995c07c
3 changed files with 181 additions and 136 deletions

View File

@@ -107,15 +107,14 @@ var Client = (function () {
value: function login() {
var email = arguments.length <= 0 || arguments[0] === undefined ? "foo@bar.com" : arguments[0];
var password = arguments.length <= 1 || arguments[1] === undefined ? "pass1234" : arguments[1];
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];
var self = this;
this.createws();
return new Promise(function (resolve, reject) {
if (self.state === 0 || self.state === 4) {
if (this.state === 0 || this.state === 4) {
this.state = 1; //set the state to logging in
self.state = 1; //set the state to logging in
request.post(Endpoints.LOGIN).send({
email: email,
@@ -126,15 +125,32 @@ var Client = (function () {
self.state = 4; //set state to disconnected
self.trigger("disconnected");
self.websocket.close();
callback(err);
reject(err);
} else {
self.state = 2; //set state to logged in (not yet ready)
self.token = res.body.token; //set our token
self.trySendConnData();
callback(null, self.token);
resolve(self.token);
}
});
} else {
reject(new Error("Client already logging in or ready"));
}
});
}
}, {
key: "logout",
value: function logout() {
var self = this;
return new Promise(function (resolve, reject) {
request.post(Endpoints.LOGOUT).set("authorization", self.token).end(function (err, res) {
if (err) reject(err);else resolve();
});
});
}
//def createws

View File

@@ -115,15 +115,15 @@ class Client {
}
//def login
login(email = "foo@bar.com", password = "pass1234", callback = function () { }) {
login(email = "foo@bar.com", password = "pass1234") {
var self = this;
this.createws();
return new Promise(function (resolve, reject) {
if (self.state === 0 || self.state === 4) {
if (this.state === 0 || this.state === 4) {
this.state = 1; //set the state to logging in
self.state = 1; //set the state to logging in
request
.post(Endpoints.LOGIN)
@@ -136,17 +136,42 @@ class Client {
self.state = 4; //set state to disconnected
self.trigger("disconnected");
self.websocket.close();
callback(err);
reject(err);
} else {
self.state = 2; //set state to logged in (not yet ready)
self.token = res.body.token; //set our token
self.trySendConnData();
callback(null, self.token);
resolve(self.token);
}
});
}else{
reject(new Error("Client already logging in or ready"));
}
});
}
logout(){
var self = this;
return new Promise(function(resolve, reject){
request
.post(Endpoints.LOGOUT)
.set( "authorization", self.token )
.end(function(err, res){
if(err)
reject(err);
else
resolve();
});
});
}

View File

@@ -2,8 +2,12 @@ var Discord = require("../lib/index.js");
var Auth = require("./auth.json");
var mybot = new Discord.Client();
mybot.login(Auth.email, Auth.password, function(err, res){
mybot.login(Auth.email+"a", Auth.password)
.then(function (token) {
console.log("wooo!");
}).catch(function (error) {
console.log(error);
});
mybot.on("ready", function () {