+ const { start, count } = pageToStartAndCount(page, ACTIVITY_PUB.COLLECTION_ITEMS_PER_PAGE)
+ const result = await handler(start, count)
+
+ let next: string | undefined
+ let prev: string | undefined
+
+ // Assert page is a number
+ page = parseInt(page, 10)
+
+ // There are more results
+ if (result.total > page * ACTIVITY_PUB.COLLECTION_ITEMS_PER_PAGE) {
+ next = baseUrl + '?page=' + (page + 1)
+ }
+
+ if (page > 1) {
+ prev = baseUrl + '?page=' + (page - 1)
+ }
+
+ return {
+ id: baseUrl + '?page=' + page,
+ type: 'OrderedCollectionPage',
+ prev,
+ next,
+ partOf: baseUrl,
+ orderedItems: result.data,
+ totalItems: result.total
+ }
+