diff --git a/lib/Client.js b/lib/Client.js index 35ad91bfa..68bbfb3dc 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -479,6 +479,52 @@ var Client = (function () { }); }); } + }, { + key: "deleteChannel", + value: function deleteChannel(channel) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1]; + + var self = this; + + return new Promise(function (resolve, reject) { + + var channelID = channel; + if (channel instanceof Channel) { + channelID = channel.id; + } + + request.del(Endpoints.CHANNELS + "/" + channelID).set("authorization", self.token).end(function (err) { + if (err) { + callback(err); + reject(err); + } else { + callback(null); + resolve(); + } + }); + }); + } + }, { + key: "joinServer", + value: function joinServer(invite) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err, server) {} : arguments[1]; + + var self = this; + + return new Promise(function (resolve, reject) { + + var id = invite instanceof Invite ? invite.code : invite; + + request.post(Endpoints.API + "/invite/" + id).set("authorization", self.token).end(function (err, res) { + if (err) { + callback(err); + reject(err); + } else { + self.serverCreateListener.set(res.body.guild.id, [resolve, callback]); + } + }); + }); + } }, { key: "sendMessage", value: function sendMessage(destination, message) { @@ -900,6 +946,7 @@ var Client = (function () { var cbs = self.serverCreateListener.get(data.id); cbs[0](server); //promise then callback cbs[1](null, server); //legacy callback + self.serverCreateListener["delete"](data.id); } self.trigger("serverCreate", server); diff --git a/src/Client.js b/src/Client.js index 1ac97e4ad..4338a1cce 100644 --- a/src/Client.js +++ b/src/Client.js @@ -460,18 +460,18 @@ class Client { reject(err); } else { var logs = []; - + var channel = self.getChannel("id", channelID); - + for (var message of res.body) { - + var mentions = []; - for(var mention of message.mentions){ - mentions.push( self.addUser(mention) ); + for (var mention of message.mentions) { + mentions.push(self.addUser(mention)); } - + var author = self.addUser(message.author); - + logs.push(new Message(message, channel, mentions, author)); } callback(null, logs); @@ -484,6 +484,58 @@ class Client { } + deleteChannel(channel, callback = function (err) { }) { + + var self = this; + + return new Promise(function (resolve, reject) { + + var channelID = channel; + if (channel instanceof Channel) { + channelID = channel.id; + } + + request + .del(`${Endpoints.CHANNELS}/${channelID}`) + .set("authorization", self.token) + .end(function (err) { + if (err) { + callback(err); + reject(err); + } else { + callback(null); + resolve(); + } + }); + + }); + + } + + joinServer(invite, callback = function (err, server) { }) { + + var self = this; + + return new Promise(function (resolve, reject) { + + var id = (invite instanceof Invite ? invite.code : invite); + + request + .post(`${Endpoints.API}/invite/${id}`) + .set("authorization", self.token) + .end(function (err, res) { + if (err) { + callback(err); + reject(err); + } else { + self.serverCreateListener.set(res.body.guild.id, [resolve, callback]); + } + }); + + }); + + } + sendMessage(destination, message, callback = function (err, msg) { }, premessage = "") { var self = this; @@ -764,6 +816,7 @@ class Client { var cbs = self.serverCreateListener.get(data.id); cbs[0](server); //promise then callback cbs[1](null, server); //legacy callback + self.serverCreateListener.delete(data.id); } self.trigger("serverCreate", server);