recime-bot-runtime
Version:
This runtime is intended to run inside a micro-service container with platform specific integration and module interpreter.
56 lines (55 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var request = require("request");
var Viber = /** @class */ (function () {
function Viber(bot) {
this.bot = bot;
}
Viber.prototype.send = function (message, filter) {
var _this = this;
var response = filter.map(function (id) { return function () {
return _this.sendToReceiver(message, id);
}; });
return response
.reduce(function (a, b) {
return a.then(function (messages) {
return b().then(function (message) {
if (message.status === 0) {
messages.push(message.message_token);
}
return messages;
});
});
}, Promise.resolve([]));
};
Viber.prototype.sendToReceiver = function (message, receiver) {
var _this = this;
message.receiver = receiver;
return new Promise(function (resolve, reject) {
request({
json: true,
method: "POST",
url: "https://chatapi.viber.com/pa/send_message",
headers: {
"X-Viber-Auth-Token": process.env.RECIME_VIBER_ACCESS_TOKEN || _this.bot.config.RECIME_VIBER_ACCESS_TOKEN
},
body: message
}, function (err, response, body) {
if (err) {
return reject(err);
}
if (body && body.length > 0) {
if (body[0].status !== 'ok') {
return reject({
code: body[0].status,
message: body[0].status_message
});
}
}
resolve(body);
});
});
};
return Viber;
}());
exports.Viber = Viber;