meses-feed
Version:
Meses feed SDK in JavaScript
44 lines (38 loc) • 1.23 kB
JavaScript
class PreviousFeedActivityQuery {
constructor(service, feedName, startActivityId) {
this._service = service
this._feedName = feedName
this._next = startActivityId
this._reachEnd = false
}
/**
* Load some feed activities ordered by activity timestamp
*
* @param {Number} items - number of items to load
* @return {Promise} array of feed activities if fulfilled.
*/
load(items) {
if (this._reachEnd)
return new Promise(function(resolve, reject) { resolve([]) })
const service = this._service
const feedName = this._feedName
const next = this._next
return new Promise(function(resolve, reject) {
service.getFeedActivities(feedName, next, items)
.then(result => {
if (result.nextActivityId == null)
this._reachEnd = true
this._next = result.nextActivityId
resolve(result.feedActivities)
})
.catch(err => reject(err))
}.bind(this))
}
/**
* Predicate for checking whether the query can load more conversation
*
* @return {Boolean} TRUE if query can load more conversation
*/
hasMore() { return !this._reachEnd }
}
export default PreviousFeedActivityQuery