meses-feed
Version:
Meses feed SDK in JavaScript
148 lines (124 loc) • 5.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _HttpClient = require('./util/HttpClient');
var _HttpClient2 = _interopRequireDefault(_HttpClient);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var MesesFeedService = function () {
function MesesFeedService(uri, applicationId) {
_classCallCheck(this, MesesFeedService);
this._VERSION = '1.0.0';
this._USER_AGENT = 'Meses-Client/' + this._VERSION;
this._FEED_API_PATH = '/v1/feed';
this._uri = uri;
this._applicationId = applicationId;
}
/**
* Get a list of feed activities ordered descending by activity timestamps.
*
* @param {String} feedName
* @param {String} startActivityId - offset for retrieving the activities
* @param {Number} limit - desired list size
* @return {Promise} feedActivities - list of activites in the specified feed (fulfilled)
* unseenCount - number of new activities since last seen time
* nextActivityId - activityId for retrieving older feed activites
*/
_createClass(MesesFeedService, [{
key: 'getFeedActivities',
value: function getFeedActivities(feedName, startActivityId, limit) {
var GET_FEED_ACTIVITIES = '/activity';
var apiUrl = this._uri + this._FEED_API_PATH + GET_FEED_ACTIVITIES;
var params = {
applicationId: this._applicationId,
feedName: feedName,
startActivityId: startActivityId,
limit: limit
};
var context = {};
return new Promise(function (resolve, reject) {
var callback = function callback(err, result) {
if (err) reject(err);else resolve(result);
};
_HttpClient2.default.executeGet(apiUrl, params, context, callback);
});
}
/**
* Get number of unseen feed activities in the specified feed.
*
* @param {String} feedName
* @return {Promise} an integer indicating number of unseen feed activities
*/
}, {
key: 'getFeedUnseenCount',
value: function getFeedUnseenCount(feedName) {
var GET_FEED_ACTIVITIES = '/activity';
var apiUrl = this._uri + this._FEED_API_PATH + GET_FEED_ACTIVITIES;
var params = {
applicationId: this._applicationId,
feedName: feedName,
startActivityId: null,
limit: 0
};
var context = {};
return new Promise(function (resolve, reject) {
var callback = function callback(err, result) {
if (err) reject(err);else resolve(result.unseenCount);
};
_HttpClient2.default.executeGet(apiUrl, params, context, callback);
});
}
/**
* Mark a conversation as seen. Generally used when the user access the feed.
*
* @param {String} feedName
* @return {Promise} fulfilled if marking succeeded
*/
}, {
key: 'markAsSeen',
value: function markAsSeen(feedName) {
var MARK_AS_SEEN_PATH = '/seen';
var apiUrl = this._uri + this._FEED_API_PATH + MARK_AS_SEEN_PATH;
var spec = {
applicationId: this._applicationId,
feedName: feedName
};
var context = {};
return new Promise(function (resolve, reject) {
var callback = function callback(err, result) {
if (err) reject(err);else resolve(result);
};
_HttpClient2.default.executePost(apiUrl, spec, context, callback);
});
}
/**
* Mark a specified activity as read activity in a specified feed.
*
* @param {String} feedName
* @param {String} activityId
* @return {Promise} fulfilled if marking succeeded
*/
}, {
key: 'markAsRead',
value: function markAsRead(feedName, activityId) {
var MARK_AS_READ_PATH = '/read';
var apiUrl = this._uri + this._FEED_API_PATH + MARK_AS_READ_PATH;
var spec = {
applicationId: this._applicationId,
feedName: feedName,
activityId: activityId
};
var context = {};
return new Promise(function (resolve, reject) {
var callback = function callback(err, result) {
if (err) reject(err);else resolve(result);
};
_HttpClient2.default.executePost(apiUrl, spec, context, callback);
});
}
}]);
return MesesFeedService;
}();
exports.default = MesesFeedService;