From 49734124395d74e3e2faba347bc7deaff056765f Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Sun, 15 Nov 2015 13:32:01 +0000 Subject: [PATCH] Added message acknowledging --- lib/Client/InternalClient.js | 24 ++++++++++++++++++++++++ src/Client/InternalClient.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index e33f14203..a8233047b 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -948,6 +948,29 @@ var InternalClient = (function () { return this.setChannelNameAndTopic(chann, data.name, data.topic); }; + //def ack + + InternalClient.prototype.ack = function ack(msg) { + var self = this; + return new Promise(function (resolve, reject) { + + msg = self.resolver.resolveMessage(msg); + + if (msg) { + + request.post(Endpoints.CHANNEL_MESSAGE(msg.channel.id, msg.id) + "/ack").set("authorization", self.token).end(function (err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + } else { + reject(new Error("Message does not exist")); + } + }); + }; + InternalClient.prototype.sendWS = function sendWS(object) { if (this.websocket) this.websocket.send(JSON.stringify(object)); }; @@ -1031,6 +1054,7 @@ var InternalClient = (function () { if (channel) { var msg = channel.messages.add(new Message(data, channel, client)); client.emit("message", msg); + self.ack(msg); } else { client.emit("warn", "message created but channel is not cached"); } diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 0a3c57b2b..6cd4270ff 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -1006,6 +1006,33 @@ class InternalClient { updateChannel(chann, data) { return this.setChannelNameAndTopic(chann, data.name, data.topic); } + + //def ack + ack(msg){ + var self = this; + return new Promise((resolve, reject) => { + + msg = self.resolver.resolveMessage(msg); + + if(msg){ + + request + .post(Endpoints.CHANNEL_MESSAGE(msg.channel.id, msg.id)+"/ack") + .set("authorization", self.token) + .end((err) => { + if(err){ + reject(err); + }else{ + resolve(); + } + }); + + }else{ + reject(new Error("Message does not exist")); + } + + }); + } sendWS(object) { if (this.websocket) @@ -1090,6 +1117,7 @@ class InternalClient { if (channel) { var msg = channel.messages.add(new Message(data, channel, client)); client.emit("message", msg); + self.ack(msg); } else { client.emit("warn", "message created but channel is not cached"); }