Update author API endpoints to load library items from DB

This commit is contained in:
advplyr 2023-08-06 15:06:45 -05:00
parent 56e3449db6
commit 345ff1aa66
5 changed files with 80 additions and 22 deletions

View file

@ -400,6 +400,46 @@ module.exports = (sequelize) => {
})
}
/**
* Get old library item by id
* @param {string} libraryItemId
* @returns {oldLibraryItem}
*/
static async getOldById(libraryItemId) {
if (!libraryItemId) return null
const libraryItem = await this.findByPk(libraryItemId, {
include: [
{
model: sequelize.models.book,
include: [
{
model: sequelize.models.author,
through: {
attributes: []
}
},
{
model: sequelize.models.series,
through: {
attributes: ['sequence']
}
}
]
},
{
model: sequelize.models.podcast,
include: [
{
model: sequelize.models.podcastEpisode
}
]
}
]
})
if (!libraryItem) return null
return this.getOldLibraryItem(libraryItem)
}
/**
* Get library items using filter and sort
* @param {oldLibrary} library
@ -609,6 +649,17 @@ module.exports = (sequelize) => {
return shelves
}
/**
* Get book library items for author, optional use user permissions
* @param {oldAuthor} author
* @param {[oldUser]} user
* @returns {oldLibraryItem[]}
*/
static async getForAuthor(author, user = null) {
const { libraryItems } = await libraryFilters.getLibraryItemsForAuthor(author, user, undefined, undefined)
return libraryItems.map(li => this.getOldLibraryItem(li))
}
getMedia(options) {
if (!this.mediaType) return Promise.resolve(null)
const mixinMethodName = `get${sequelize.uppercaseFirst(this.mediaType)}`