mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Update:Find one library item endpoint sequelize query split into two queries to improve performance #2073 #2075
This commit is contained in:
		
							parent
							
								
									707451309c
								
							
						
					
					
						commit
						456bb87a00
					
				| @ -419,39 +419,40 @@ class LibraryItem extends Model { | ||||
|    */ | ||||
|   static async getOldById(libraryItemId) { | ||||
|     if (!libraryItemId) return null | ||||
|     const libraryItem = await this.findByPk(libraryItemId, { | ||||
|       include: [ | ||||
|         { | ||||
|           model: this.sequelize.models.book, | ||||
|           include: [ | ||||
|             { | ||||
|               model: this.sequelize.models.author, | ||||
|               through: { | ||||
|                 attributes: [] | ||||
|               } | ||||
|             }, | ||||
|             { | ||||
|               model: this.sequelize.models.series, | ||||
|               through: { | ||||
|                 attributes: ['sequence'] | ||||
|               } | ||||
| 
 | ||||
|     const libraryItem = await this.findByPk(libraryItemId) | ||||
| 
 | ||||
|     if (libraryItem.mediaType === 'podcast') { | ||||
|       libraryItem.media = await libraryItem.getMedia({ | ||||
|         include: [ | ||||
|           { | ||||
|             model: this.sequelize.models.podcastEpisode | ||||
|           } | ||||
|         ] | ||||
|       }) | ||||
|     } else { | ||||
|       libraryItem.media = await libraryItem.getMedia({ | ||||
|         include: [ | ||||
|           { | ||||
|             model: this.sequelize.models.author, | ||||
|             through: { | ||||
|               attributes: [] | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           model: this.sequelize.models.podcast, | ||||
|           include: [ | ||||
|             { | ||||
|               model: this.sequelize.models.podcastEpisode | ||||
|           }, | ||||
|           { | ||||
|             model: this.sequelize.models.series, | ||||
|             through: { | ||||
|               attributes: ['sequence'] | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ], | ||||
|       order: [ | ||||
|         [this.sequelize.models.book, this.sequelize.models.author, this.sequelize.models.bookAuthor, 'createdAt', 'ASC'], | ||||
|         [this.sequelize.models.book, this.sequelize.models.series, 'bookSeries', 'createdAt', 'ASC'] | ||||
|       ] | ||||
|     }) | ||||
|           } | ||||
|         ], | ||||
|         order: [ | ||||
|           [this.sequelize.models.author, this.sequelize.models.bookAuthor, 'createdAt', 'ASC'], | ||||
|           [this.sequelize.models.series, 'bookSeries', 'createdAt', 'ASC'] | ||||
|         ] | ||||
|       }) | ||||
|     } | ||||
| 
 | ||||
|     if (!libraryItem) return null | ||||
|     return this.getOldLibraryItem(libraryItem) | ||||
|   } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user