added basic methods

This commit is contained in:
hydrabolt
2015-08-23 17:14:19 +01:00
parent 35b61312b9
commit a9bd6cd59c

View File

@@ -3,6 +3,7 @@ var Endpoints = require("./Endpoints.js");
//node modules
var request = require("superagent");
var WebSocket = require("ws");
var defaultOptions = {
cache_tokens: false
@@ -22,6 +23,7 @@ class Client {
this.websocket = null;
this.events = new Map();
this.user = null;
this.alreadySentData = false;
/*
State values:
0 - idle
@@ -35,35 +37,80 @@ class Client {
get ready() {
return this.state === 3;
}
debug(message) {
}
//def login
login(email = "foo@bar.com", password = "pass1234s", callback = function(){}) {
login(email = "foo@bar.com", password = "pass1234s", callback = function () { }) {
var self = this;
if (this.state === 0 || this.state === 4) {
this.state = 1; //set the state to logging in
request
.post(Endpoints.LOGIN)
.send({
email : email,
password : password
}).end(function(err, res){
if(err){
email: email,
password: password
}).end(function (err, res) {
if (err) {
self.state = 4; //set state to disconnected
callback(err);
}else{
} else {
self.state = 2; //set state to logged in (not yet ready)
self.token = res.body.token;
self.token = res.body.token; //set our token
self.trySendConnData();
callback(null, self.token);
}
});
}
}
//def createws
createws() {
if (this.websocket)
return false;
var self = this;
//good to go
this.websocket = new WebSocket(Endpoints.WEBSOCKET_HUB);
this.websocket.onopen = function () {
self.trySendConnData(); //try connecting
};
}
//def trySendConnData
trySendConnData() {
if (this.token && this.websocket.readyState === WebSocket.OPEN && !this.alreadySentData) {
this.alreadySentData = true;
var data = {
op: 2,
d: {
token: this.token,
v: 2,
properties: {
"$os": "discord.js",
"$browser": "discord.js",
"$device": "discord.js",
"$referrer": "",
"$referring_domain": ""
}
}
};
this.websocket.send(JSON.stringify(data));
}
}
}