diff --git a/lib/Client/Client.js b/lib/Client/Client.js index bdf58cfe9..6b998cd6b 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -304,6 +304,27 @@ var Client = (function (_EventEmitter) { }); }; + //def banMember + + Client.prototype.banMember = function banMember(user, server) { + var length = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; + var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3]; + + var self = this; + return new Promise(function (resolve, reject) { + if (typeof length === "function") { + // length is the callback + callback = length; + } + self.internal.banMember(user, server, length).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 33eb132ac..873668dbd 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -435,6 +435,27 @@ var InternalClient = (function () { }); }; + // def banMember + + InternalClient.prototype.banMember = function banMember(user, server) { + var length = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; + + var self = this; + return new Promise(function (resolve, reject) { + + user = self.resolver.resolveUser(user); + server = self.resolver.resolveServer(server); + + request.put(Endpoints.SERVER_BANS(server.id) + "/" + user.id + "/?delete-message-days=" + length).set("authorization", self.token).end(function (err, res) { + if (err) { + reject(err); + } else { + 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 3d350b9a7..f18ef6959 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -278,6 +278,26 @@ class Client extends EventEmitter { }); } + + //def banMember + banMember(user, server, length=1, callback=function(err){}){ + var self = this; + return new Promise((resolve, reject) => { + if (typeof length === "function") { + // length is the callback + callback = length; + } + self.internal.banMember(user, server, length) + .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 9858b85d3..8f2a12759 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -469,6 +469,26 @@ class InternalClient { }); } + // def banMember + banMember(user, server, length=1){ + var self = this; + return new Promise((resolve, reject) => { + + user = self.resolver.resolveUser(user); + server = self.resolver.resolveServer(server); + + request + .put(`${Endpoints.SERVER_BANS(server.id)}/${user.id}/?delete-message-days=${length}`) + .set("authorization", self.token) + .end((err, res) => { + if(err){ + reject(err); + }else{ + resolve(); + } + }); + }); + } sendWS(object) {