added deletion queue

This commit is contained in:
hydrabolt
2015-08-30 21:42:09 +01:00
parent 2fdc5a3ff6
commit be0be60947
3 changed files with 110 additions and 21 deletions

View File

@@ -347,15 +347,33 @@ var Client = (function () {
}
function remove() {
request.del(Endpoints.CHANNELS + "/" + message.channel.id + "/messages/" + message.id).set("authorization", self.token).end(function (err, res) {
if (err) {
callback(err);
reject(err);
} else {
callback(null);
resolve();
if (self.options.queue) {
if (!self.queue[message.channel.id]) {
self.queue[message.channel.id] = [];
}
});
self.queue[message.channel.id].push({
action: "deleteMessage",
message: message,
then: good,
error: bad
});
self.checkQueue(message.channel.id);
} else {
self._deleteMessage(message).then(good)["catch"](bad);
}
}
function good() {
prom.success = true;
callback(null);
resolve();
}
function bad(err) {
prom.error = err;
callback(err);
reject(err);
}
});
@@ -1468,6 +1486,20 @@ var Client = (function () {
});
});
}
}, {
key: "_deleteMessage",
value: function _deleteMessage(message) {
var self = this;
return new Promise(function (resolve, reject) {
request.del(Endpoints.CHANNELS + "/" + message.channel.id + "/messages/" + message.id).set("authorization", self.token).end(function (err, res) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
}, {
key: "checkQueue",
value: function checkQueue(channelID) {
@@ -1520,6 +1552,18 @@ var Client = (function () {
doNext();
});
break;
case "deleteMessage":
var msgToDel = queuedEvent;
self._deleteMessage(msgToDel.message).then(function (msg) {
msgToDel.then(msg);
self.queue[channelID].shift();
doNext();
})["catch"](function (err) {
msgToDel.error(err);
self.queue[channelID].shift();
doNext();
});
break;
default:
done();
break;