diff --git a/lib/Client/Client.js b/lib/Client/Client.js index 1569c8bf2..bdf58cfe9 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -287,6 +287,23 @@ var Client = (function (_EventEmitter) { }); }; + // def deleteChannel + + Client.prototype.deleteChannel = function deleteChannel(channel) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1]; + + var self = this; + return new Promise(function (resolve, reject) { + + self.internal.deleteChannel(channel).then(function () { + callback(); + resolve(); + })["catch"](function (e) { + callback(e);reject(e); + }); + }); + }; + return Client; })(EventEmitter); diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 1f1ba83ba..4bfdf497e 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -413,6 +413,28 @@ var InternalClient = (function () { }); }; + // def deleteChannel + + InternalClient.prototype.deleteChannel = function deleteChannel(_channel) { + var self = this; + return new Promise(function (resolve, reject) { + + self.resolver.resolveChannel(_channel).then(next)["catch"](reject); + + function next(channel) { + request.del(Endpoints.CHANNEL(channel.id)).set("authorization", self.token).end(function (err, res) { + if (err) { + reject(err); + } else { + channel.server.channels.remove(channel); + self.channels.remove(channel); + resolve(); + } + }); + } + }); + }; + InternalClient.prototype.sendWS = function sendWS(object) { if (this.websocket) this.websocket.send(JSON.stringify(object)); }; diff --git a/src/Client/Client.js b/src/Client/Client.js index 9be71b6f8..3d350b9a7 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -261,6 +261,23 @@ class Client extends EventEmitter { }); } + + // def deleteChannel + deleteChannel(channel, callback=function(err){}){ + var self = this; + return new Promise((resolve, reject) => { + + self.internal.deleteChannel(channel) + .then( () => { + callback(); + resolve(); + }) + .catch( e => { + callback(e); reject(e); + }) + + }); + } } module.exports = Client; \ No newline at end of file diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index c16430f62..41c9b2296 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -443,8 +443,33 @@ class InternalClient { }) }); - } + + // def deleteChannel + deleteChannel(_channel){ + var self = this; + return new Promise((resolve, reject) => { + + self.resolver.resolveChannel(_channel).then(next).catch(reject); + + function next(channel){ + request + .del(Endpoints.CHANNEL(channel.id)) + .set("authorization", self.token) + .end(function(err, res){ + if(err){ + reject(err); + }else{ + channel.server.channels.remove(channel); + self.channels.remove(channel); + resolve(); + } + }); + } + }); + } + + sendWS(object) { if (this.websocket)