forest-express
Version:
Official package for all Forest Express Lianas
32 lines (31 loc) • 1.32 kB
JavaScript
;
var P = require('bluebird');
var request = require('superagent');
function ConversationsGetter(Implementation, params, opts, integrationInfo) {
var collectionModel = null;
function getConversations(user) {
return new P(function (resolve, reject) {
if (!user) {
return resolve([0, []]);
}
return request.get("https://api.layer.com/apps/".concat(opts.integrations.layer.appId, "/users/").concat(user, "/conversations")).set('Accept', 'application/vnd.layer+json; version=2.0').set('Content-type', 'application/json').set('Authorization', "Bearer ".concat(opts.integrations.layer.serverApiToken)).end(function (error, data) {
if (error) {
return reject(error);
}
return resolve([data.body.length, data.body]);
});
});
}
this.perform = function () {
var collectionFieldName = integrationInfo.field;
collectionModel = integrationInfo.collection;
return Implementation.Layer.getUser(collectionModel, collectionFieldName, params.recordId).then(function (user) {
return getConversations(user[collectionFieldName]).spread(function (count, conversations) {
return [count, conversations];
})["catch"](function () {
return [0, []];
});
});
};
}
module.exports = ConversationsGetter;