Use POST for hide/unhide

This commit is contained in:
DoctorDalek1963 2025-11-06 20:35:14 +00:00
parent 8318ac33e9
commit d9527177b0
No known key found for this signature in database
4 changed files with 19 additions and 43 deletions

View File

@ -588,9 +588,11 @@ export default {
callback: (confirmed) => {
if (confirmed) {
this.processingSeries = true
const endpoint = newIsHidden ? 'hide' : 'unhide'
const payload = {
makeHidden: newIsHidden
}
this.$axios
.$get(`/api/me/series/${this.seriesId}/${endpoint}`)
.$post(`/api/me/series/${this.seriesId}/hide`, payload)
.then(() => {
this.$toast.success(this.$strings.ToastSeriesUpdateSuccess)
})

View File

@ -382,7 +382,7 @@ class MeController {
}
/**
* GET: /api/me/series/:id/hide
* POST: /api/me/series/:id/hide
*
* @param {RequestWithUser} req
* @param {Response} res
@ -393,26 +393,9 @@ class MeController {
return res.sendStatus(404)
}
const hasUpdated = await req.user.hideSeries(req.params.id)
if (hasUpdated) {
SocketAuthority.clientEmitter(req.user.id, 'user_updated', req.user.toOldJSONForBrowser())
}
res.json(req.user.toOldJSONForBrowser())
}
const { makeHidden } = req.body
/**
* GET: /api/me/series/:id/unhide
*
* @param {RequestWithUser} req
* @param {Response} res
*/
async unhideSeries(req, res) {
if (!(await Database.seriesModel.checkExistsById(req.params.id))) {
Logger.error(`[MeController] unhideSeries: Series ${req.params.id} not found`)
return res.sendStatus(404)
}
const hasUpdated = await req.user.unhideSeries(req.params.id)
const hasUpdated = await req.user.hideSeries(req.params.id, makeHidden)
if (hasUpdated) {
SocketAuthority.clientEmitter(req.user.id, 'user_updated', req.user.toOldJSONForBrowser())
}

View File

@ -943,29 +943,21 @@ class User extends Model {
/**
*
* @param {string} seriesId
* @param {boolean} makeHidden
* @returns {Promise<boolean>}
*/
async hideSeries(seriesId) {
if (!this.extraData) this.extraData = {}
const hiddenSeries = this.extraData.hiddenSeries || []
if (hiddenSeries.includes(seriesId)) return false
hiddenSeries.push(seriesId)
this.extraData.hiddenSeries = hiddenSeries
this.changed('extraData', true)
await this.save()
return true
}
/**
*
* @param {string} seriesId
* @returns {Promise<boolean>}
*/
async unhideSeries(seriesId) {
async hideSeries(seriesId, makeHidden) {
if (!this.extraData) this.extraData = {}
let hiddenSeries = this.extraData.hiddenSeries || []
if (!hiddenSeries.includes(seriesId)) return false
hiddenSeries = hiddenSeries.filter((sid) => sid !== seriesId)
if (makeHidden) {
if (hiddenSeries.includes(seriesId)) return false
hiddenSeries.push(seriesId)
} else {
if (!hiddenSeries.includes(seriesId)) return false
hiddenSeries = hiddenSeries.filter((sid) => sid !== seriesId)
}
this.extraData.hiddenSeries = hiddenSeries
this.changed('extraData', true)
await this.save()

View File

@ -186,8 +186,7 @@ class ApiRouter {
this.router.get('/me/items-in-progress', MeController.getAllLibraryItemsInProgress.bind(this))
this.router.get('/me/series/:id/remove-from-continue-listening', MeController.removeSeriesFromContinueListening.bind(this))
this.router.get('/me/series/:id/readd-to-continue-listening', MeController.readdSeriesFromContinueListening.bind(this))
this.router.get('/me/series/:id/hide', MeController.hideSeries.bind(this))
this.router.get('/me/series/:id/unhide', MeController.unhideSeries.bind(this))
this.router.post('/me/series/:id/hide', MeController.hideSeries.bind(this))
this.router.get('/me/stats/year/:year', MeController.getStatsForYear.bind(this))
this.router.post('/me/ereader-devices', MeController.updateUserEReaderDevices.bind(this))