From 659fdf5bff3a1d16137a13ecebbc2ff42b850f67 Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Tue, 25 Aug 2015 13:05:41 +0100 Subject: [PATCH] Added leave server --- lib/Client.js | 31 ++++++++++++++++++++++++++++--- src/Client.js | 47 ++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 66 insertions(+), 12 deletions(-) diff --git a/lib/Client.js b/lib/Client.js index 4424c114b..97c8a52f6 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -212,6 +212,29 @@ var Client = (function () { }); }); } + }, { + key: "leaveServer", + value: function leaveServer(server) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err, server) {} : arguments[1]; + + var self = this; + + return new Promise(function (resolve, reject) { + + request.del(Endpoints.SERVERS + "/" + self.resolveServerID(server)).set("authorization", self.token).end(function (err, res) { + + if (err) { + callback(err); + reject(err); + } else { + var srv = self.getServer("id", self.resolveServerID(server)); + callback(null, srv); + resolve(srv); + self.serverCache.splice(self.serverCache.indexOf(srv), 1); + } + }); + }); + } //def createws }, { @@ -294,6 +317,7 @@ var Client = (function () { self.debug("received message"); var mentions = []; + data.mentions = data.mentions || []; //for some reason this was not defined at some point? var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; @@ -320,9 +344,10 @@ var Client = (function () { } var channel = self.getChannel("id", data.channel_id); - var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); - - self.trigger("message", msg); + if (channel) { + var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); + self.trigger("message", msg); + } break; case "MESSAGE_DELETE": diff --git a/src/Client.js b/src/Client.js index b70fb476b..9cb558cee 100644 --- a/src/Client.js +++ b/src/Client.js @@ -115,7 +115,7 @@ class Client { } //def login - login(email = "foo@bar.com", password = "pass1234", callback = function(err, token){}) { + login(email = "foo@bar.com", password = "pass1234", callback = function (err, token) { }) { var self = this; @@ -155,7 +155,7 @@ class Client { } - logout(callback = function(err){}) { + logout(callback = function (err) { }) { var self = this; @@ -166,10 +166,10 @@ class Client { .set("authorization", self.token) .end(function (err, res) { - if (err){ + if (err) { callback(err); reject(err); - }else{ + } else { callback(null); resolve(); } @@ -179,7 +179,7 @@ class Client { } - createServer(name, region, callback = function(err, server){}) { + createServer(name, region, callback = function (err, server) { }) { var self = this; return new Promise(function (resolve, reject) { @@ -204,7 +204,7 @@ class Client { }); } - createChannel(server, channelName, channelType, callback = function(err, chann){}) { + createChannel(server, channelName, channelType, callback = function (err, chann) { }) { var self = this; @@ -235,6 +235,33 @@ class Client { }); } + + leaveServer(server, callback = function (err, server) { }) { + + var self = this; + + return new Promise(function (resolve, reject) { + + request + .del(`${Endpoints.SERVERS}/${self.resolveServerID(server) }`) + .set("authorization", self.token) + .end(function (err, res) { + + if (err) { + callback(err); + reject(err); + } else { + var srv = self.getServer("id", self.resolveServerID(server)); + callback(null, srv); + resolve(srv); + self.serverCache.splice(self.serverCache.indexOf(srv), 1); + } + + }); + + }); + + } //def createws createws() { @@ -295,14 +322,16 @@ class Client { self.debug("received message"); var mentions = []; + data.mentions = data.mentions || []; //for some reason this was not defined at some point? for (var mention of data.mentions) { mentions.push(self.addUser(mention)); } var channel = self.getChannel("id", data.channel_id); - var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); - - self.trigger("message", msg); + if (channel) { + var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); + self.trigger("message", msg); + } break; case "MESSAGE_DELETE":