Fix:Get library items endpoint limit & total entities count

This commit is contained in:
advplyr 2022-11-13 13:25:20 -06:00
parent 31be2ba4fb
commit 8f83752abc
2 changed files with 25 additions and 23 deletions

View file

@ -188,7 +188,17 @@ class LibraryController {
if (!(collapsedItems.length == 1 && collapsedItems[0].collapsedSeries)) {
libraryItems = collapsedItems
payload.total = libraryItems.length
// Get accurate total entities
let uniqueEntities = new Set()
libraryItems.forEach((item) => {
if (item.collapsedSeries) {
item.collapsedSeries.books.forEach(book => uniqueEntities.add(book.id))
} else {
uniqueEntities.add(item.id)
}
})
payload.total = uniqueEntities.size
}
}
@ -265,6 +275,12 @@ class LibraryController {
libraryItems = naturalSort(libraryItems).by(sortArray)
}
// Step 3.5: Limit items
if (payload.limit) {
var startIndex = payload.page * payload.limit
libraryItems = libraryItems.slice(startIndex, startIndex + payload.limit)
}
// Step 4 - Transform the items to pass to the client side
payload.results = libraryItems.map(li => {
let json = payload.minified ? li.toJSONMinified() : li.toJSON()