mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-02-19 00:18:56 +01:00
Update cached user whenever mediaProgress is removed
This commit is contained in:
parent
7282afcfde
commit
f1de307bf9
@ -126,6 +126,16 @@ class MediaProgress extends Model {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// make sure to call the afterDestroy hook for each instance
|
||||||
|
MediaProgress.addHook('beforeBulkDestroy', (options) => {
|
||||||
|
options.individualHooks = true
|
||||||
|
})
|
||||||
|
|
||||||
|
// update the potentially cached user after destroying the media progress
|
||||||
|
MediaProgress.addHook('afterDestroy', (instance) => {
|
||||||
|
user.mediaProgressRemoved(instance)
|
||||||
|
})
|
||||||
|
|
||||||
user.hasMany(MediaProgress, {
|
user.hasMany(MediaProgress, {
|
||||||
onDelete: 'CASCADE'
|
onDelete: 'CASCADE'
|
||||||
})
|
})
|
||||||
|
@ -404,6 +404,14 @@ class User extends Model {
|
|||||||
return count > 0
|
return count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static mediaProgressRemoved(mediaProgress) {
|
||||||
|
const cachedUser = userCache.getById(mediaProgress.userId)
|
||||||
|
if (cachedUser) {
|
||||||
|
Logger.debug(`[User] mediaProgressRemoved: ${mediaProgress.id} from user ${cachedUser.id}`)
|
||||||
|
cachedUser.mediaProgresses = cachedUser.mediaProgresses.filter((mp) => mp.id !== mediaProgress.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize model
|
* Initialize model
|
||||||
* @param {import('../Database').sequelize} sequelize
|
* @param {import('../Database').sequelize} sequelize
|
||||||
|
Loading…
Reference in New Issue
Block a user