Clear LibraryItemsPodcastFilters count cache after podcast[Episode] is created or destroryed

This commit is contained in:
mikiher 2025-02-16 13:27:47 +02:00
parent de5d8650e8
commit 659164003f
3 changed files with 20 additions and 2 deletions

View File

@ -1,6 +1,7 @@
const { DataTypes, Model } = require('sequelize')
const { getTitlePrefixAtEnd, getTitleIgnorePrefix } = require('../utils')
const Logger = require('../Logger')
const libraryItemsPodcastFilters = require('../utils/queries/libraryItemsPodcastFilters')
/**
* @typedef PodcastExpandedProperties
@ -148,6 +149,14 @@ class Podcast extends Model {
modelName: 'podcast'
}
)
Podcast.addHook('afterDestroy', async (instance) => {
libraryItemsPodcastFilters.clearCountCache('podcast', 'afterDestroy')
})
Podcast.addHook('afterCreate', async (instance) => {
libraryItemsPodcastFilters.clearCountCache('podcast', 'afterCreate')
})
}
get hasMediaFiles() {

View File

@ -1,5 +1,5 @@
const { DataTypes, Model } = require('sequelize')
const libraryItemsPodcastFilters = require('../utils/queries/libraryItemsPodcastFilters')
/**
* @typedef ChapterObject
* @property {number} id
@ -132,6 +132,14 @@ class PodcastEpisode extends Model {
onDelete: 'CASCADE'
})
PodcastEpisode.belongsTo(podcast)
PodcastEpisode.addHook('afterDestroy', async (instance) => {
libraryItemsPodcastFilters.clearCountCache('podcastEpisode', 'afterDestroy')
})
PodcastEpisode.addHook('afterCreate', async (instance) => {
libraryItemsPodcastFilters.clearCountCache('podcastEpisode', 'afterCreate')
})
}
get size() {

View File

@ -100,7 +100,8 @@ module.exports = {
return []
},
clearCountCache() {
clearCountCache(model, hook) {
Logger.debug(`[LibraryItemsPodcastFilters] ${model}.${hook}: Clearing count cache`)
countCache.clear()
},