Delocalised message sending, moved to one uniform function

This commit is contained in:
hydrabolt
2015-08-29 16:48:25 +01:00
parent c14b2fafb6
commit 7b124901c6
2 changed files with 113 additions and 17 deletions

View File

@@ -609,10 +609,20 @@ var Client = (function () {
//we're QUEUEING messages, so sending them sequentially based on servers.
self.addMessageQueue(destination);
} else {
self._sendMessage("text", destination, message, mentions);
self._sendMessage(destination, message, mentions).then(mgood)["catch"](mbad);
}
}
function mgood(msg) {
callback(null, msg);
resolve(msg);
}
function mbad(error) {
callback(error);
reject(error);
}
function resolveMessage() {
var msg = message;
if (message instanceof Array) {
@@ -1316,11 +1326,58 @@ var Client = (function () {
}
}, {
key: "_sendMessage",
value: function _sendMessage(messageType, destination, content, mentions) {
value: function _sendMessage(destination, content, mentions) {
var self = this;
return new Promise(function (resolve, reject) {});
return new Promise(function (resolve, reject) {
request.post(Endpoints.CHANNELS + "/" + destination + "/messages").set("authorization", self.token).send({
content: content,
mentions: mentions
}).end(function (err, res) {
if (err) {
reject(err);
} else {
var data = res.body;
var mentions = [];
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
var _iteratorNormalCompletion14 = true;
var _didIteratorError14 = false;
var _iteratorError14 = undefined;
try {
for (var _iterator14 = data.mentions[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
var mention = _step14.value;
mentions.push(self.addUser(mention));
}
} catch (err) {
_didIteratorError14 = true;
_iteratorError14 = err;
} finally {
try {
if (!_iteratorNormalCompletion14 && _iterator14["return"]) {
_iterator14["return"]();
}
} finally {
if (_didIteratorError14) {
throw _iteratorError14;
}
}
}
var channel = self.getChannel("id", data.channel_id);
if (channel) {
var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author)));
resolve(msg);
}
}
});
});
}
}, {
key: "uptime",
@@ -1358,27 +1415,27 @@ var Client = (function () {
get: function get() {
var msgs = [];
var _iteratorNormalCompletion14 = true;
var _didIteratorError14 = false;
var _iteratorError14 = undefined;
var _iteratorNormalCompletion15 = true;
var _didIteratorError15 = false;
var _iteratorError15 = undefined;
try {
for (var _iterator14 = this.channelCache[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
var channel = _step14.value;
for (var _iterator15 = this.channelCache[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {
var channel = _step15.value;
msgs = msgs.concat(channel.messages);
}
} catch (err) {
_didIteratorError14 = true;
_iteratorError14 = err;
_didIteratorError15 = true;
_iteratorError15 = err;
} finally {
try {
if (!_iteratorNormalCompletion14 && _iterator14["return"]) {
_iterator14["return"]();
if (!_iteratorNormalCompletion15 && _iterator15["return"]) {
_iterator15["return"]();
}
} finally {
if (_didIteratorError14) {
throw _iteratorError14;
if (_didIteratorError15) {
throw _iteratorError15;
}
}
}

View File

@@ -627,10 +627,20 @@ class Client {
//we're QUEUEING messages, so sending them sequentially based on servers.
self.addMessageQueue(destination);
}else{
self._sendMessage("text", destination, message, mentions);
self._sendMessage(destination, message, mentions).then(mgood).catch(mbad);
}
}
function mgood(msg){
callback(null, msg);
resolve(msg);
}
function mbad(error){
callback(error);
reject(error);
}
function resolveMessage() {
var msg = message;
@@ -1090,12 +1100,41 @@ class Client {
});
}
_sendMessage(messageType, destination, content, mentions){
_sendMessage(destination, content, mentions){
var self = this;
return new Promise(function(resolve, reject){
request
.post(`${Endpoints.CHANNELS}/${destination}/messages`)
.set("authorization", self.token)
.send({
content: content,
mentions: mentions
})
.end(function (err, res) {
if (err) {
reject(err);
} else {
var data = res.body;
var mentions = [];
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
for (var mention of data.mentions) {
mentions.push(self.addUser(mention));
}
var channel = self.getChannel("id", data.channel_id);
if (channel) {
var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author)));
resolve(msg);
}
}
});
});
}