UNPKG

meses-feed

Version:

Meses feed SDK in JavaScript

148 lines (124 loc) 5.12 kB
'use strict'; 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;