mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-03 14:39:41 +00:00
Update model casing & associations
This commit is contained in:
parent
2131a65299
commit
54ca58e610
45 changed files with 830 additions and 561 deletions
192
server/controllers2/LibraryItemController.js
Normal file
192
server/controllers2/LibraryItemController.js
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
const Database = require('../Database')
|
||||
|
||||
class LibraryItemController {
|
||||
constructor() { }
|
||||
|
||||
// Example get library item fully expanded or minified
|
||||
async get(req, res) {
|
||||
const key = req.query.minified == 1 ? 'minified' : 'full'
|
||||
const include = {
|
||||
minified: [
|
||||
{
|
||||
model: Database.models.book,
|
||||
include: [
|
||||
{
|
||||
model: Database.models.audioTrack
|
||||
},
|
||||
{
|
||||
model: Database.models.genre,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.tag,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.person,
|
||||
as: 'authors',
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.person,
|
||||
as: 'narrators',
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.series,
|
||||
through: {
|
||||
attributes: ['sequence']
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.bookChapter
|
||||
},
|
||||
{
|
||||
model: Database.models.eBookFile,
|
||||
include: 'fileMetadata'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
model: Database.models.podcast,
|
||||
include: [
|
||||
{
|
||||
model: Database.models.podcastEpisode,
|
||||
include: {
|
||||
model: Database.models.audioTrack
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.genre,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.tag,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
full: [
|
||||
{
|
||||
model: Database.models.book,
|
||||
include: [
|
||||
{
|
||||
model: Database.models.fileMetadata,
|
||||
as: 'imageFile'
|
||||
},
|
||||
{
|
||||
model: Database.models.audioTrack,
|
||||
include: {
|
||||
model: Database.models.mediaFile,
|
||||
include: [
|
||||
'fileMetadata',
|
||||
'mediaStreams'
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.genre,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.tag,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.person,
|
||||
as: 'authors',
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.person,
|
||||
as: 'narrators',
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.series,
|
||||
through: {
|
||||
attributes: ['sequence']
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.bookChapter
|
||||
},
|
||||
{
|
||||
model: Database.models.eBookFile,
|
||||
include: 'fileMetadata'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
model: Database.models.podcast,
|
||||
include: [
|
||||
{
|
||||
model: Database.models.fileMetadata,
|
||||
as: 'imageFile'
|
||||
},
|
||||
{
|
||||
model: Database.models.podcastEpisode,
|
||||
include: {
|
||||
model: Database.models.audioTrack,
|
||||
include: {
|
||||
model: Database.models.mediaFile,
|
||||
include: [
|
||||
'fileMetadata',
|
||||
'mediaStreams'
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.genre,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
{
|
||||
model: Database.models.tag,
|
||||
through: {
|
||||
attributes: []
|
||||
}
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
model: Database.models.libraryFile,
|
||||
include: 'fileMetadata'
|
||||
},
|
||||
{
|
||||
model: Database.models.libraryFolder,
|
||||
include: 'library'
|
||||
}
|
||||
]
|
||||
}
|
||||
const LibraryItem = await Database.models.libraryItem.findByPk(req.params.id, {
|
||||
include: include[key]
|
||||
})
|
||||
|
||||
res.json(LibraryItem)
|
||||
}
|
||||
}
|
||||
module.exports = new LibraryItemController()
|
||||
Loading…
Add table
Add a link
Reference in a new issue