Prepare for upcoming leave/deleteServer separation (fix #198)

This commit is contained in:
abalabahaha
2016-03-06 13:14:15 -08:00
parent 4e58de8cd6
commit b5c200901b
6 changed files with 189 additions and 134 deletions

View File

@@ -662,13 +662,13 @@ export default class Client extends EventEmitter {
}
/**
* Leaves a Discord Server, alias to `client.leaveServer`
* Deletes a Discord Server
* @param {ServerResolvable} server the server to leave
* @param {function(err: Error)} [callback] callback to the method
* @returns {Promise<null, Error>} resolves null if successful, otherwise rejects with an error.
*/
deleteServer(server, callback = (/*err, {}*/) => { }) {
return this.internal.leaveServer(server)
return this.internal.deleteServer(server)
.then(dataCallback(callback), errorCallback(callback));
}

View File

@@ -319,6 +319,24 @@ export default class InternalClient {
return Promise.reject(new Error("server did not resolve"));
}
return this.apiRequest("del", Endpoints.ME_SERVER(server.id), true)
.then(() => {
// remove channels of server then the server
for (var chan of server.channels) {
this.channels.remove(chan);
}
// remove server
this.servers.remove(server);
});
}
//def deleteServer
deleteServer(srv) {
var server = this.resolver.resolveServer(srv);
if (!server) {
return Promise.reject(new Error("server did not resolve"));
}
return this.apiRequest("del", Endpoints.SERVER(server.id), true)
.then(() => {
// remove channels of server then the server