Added deleteChannel implementation

This commit is contained in:
hydrabolt
2015-11-02 17:21:27 +00:00
parent 25f0408fae
commit ff9c9b5647
4 changed files with 82 additions and 1 deletions

View File

@@ -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);

View File

@@ -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));
};

View File

@@ -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;

View File

@@ -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)