function loadLikedItems(state = [], data, offset) { function clean(array) { let index = array.indexOf(undefined) while (index !== -1) { array.splice(index, 1) index = array.indexOf(undefined) } return array } let liked_items = clean(Object.keys(data).map((item_id) => { if (data[item_id].liked) return item_id })) return liked_items.slice(offset, offset + state.limit).map((item_id) => { return { id: item_id, images: data[item_id].images } }) }
/** * Process limit, offset and sort params from request * and use them in the query * * Example: * GET /posts?offset=20&limit=10&sort=-votes,createdAt * * @param {query} query Mongo query object * @return {query} * * @memberOf Context */ queryPageSort(query) { if (this.params) { if (this.params.limit) query.limit(this.params.limit); if (this.params.offset) query.skip(this.params.offset); if (this.params.sort) query.sort(this.params.sort.replace(/,/, " ")); } return query; }