mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-01-03 00:06:46 +01:00
Update:Remove oldSeries model
This commit is contained in:
parent
b6a86d11d2
commit
9f60017cfe
@ -442,11 +442,6 @@ class Database {
|
|||||||
await this.models.feed.removeById(feedId)
|
await this.models.feed.removeById(feedId)
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSeries(oldSeries) {
|
|
||||||
if (!this.sequelize) return false
|
|
||||||
return this.models.series.updateFromOld(oldSeries)
|
|
||||||
}
|
|
||||||
|
|
||||||
async createBulkBookAuthors(bookAuthors) {
|
async createBulkBookAuthors(bookAuthors) {
|
||||||
if (!this.sequelize) return false
|
if (!this.sequelize) return false
|
||||||
await this.models.bookAuthor.bulkCreate(bookAuthors)
|
await this.models.bookAuthor.bulkCreate(bookAuthors)
|
||||||
|
@ -59,19 +59,28 @@ class SeriesController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Update to use new model
|
* TODO: Currently unused in the client, should check for duplicate name
|
||||||
*
|
*
|
||||||
* @param {SeriesControllerRequest} req
|
* @param {SeriesControllerRequest} req
|
||||||
* @param {Response} res
|
* @param {Response} res
|
||||||
*/
|
*/
|
||||||
async update(req, res) {
|
async update(req, res) {
|
||||||
const oldSeries = req.series.getOldSeries()
|
const keysToUpdate = ['name', 'description']
|
||||||
const hasUpdated = oldSeries.update(req.body)
|
const payload = {}
|
||||||
if (hasUpdated) {
|
for (const key of keysToUpdate) {
|
||||||
await Database.updateSeries(oldSeries)
|
if (req.body[key] !== undefined && typeof req.body[key] === 'string') {
|
||||||
SocketAuthority.emitter('series_updated', oldSeries.toJSON())
|
payload[key] = req.body[key]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
res.json(oldSeries.toJSON())
|
if (!Object.keys(payload).length) {
|
||||||
|
return res.status(400).send('No valid fields to update')
|
||||||
|
}
|
||||||
|
req.series.set(payload)
|
||||||
|
if (req.series.changed()) {
|
||||||
|
await req.series.save()
|
||||||
|
SocketAuthority.emitter('series_updated', req.series.toOldJSON())
|
||||||
|
}
|
||||||
|
res.json(req.series.toOldJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
const { DataTypes, Model, where, fn, col } = require('sequelize')
|
const { DataTypes, Model, where, fn, col } = require('sequelize')
|
||||||
|
|
||||||
const oldSeries = require('../objects/entities/Series')
|
|
||||||
const { getTitlePrefixAtEnd } = require('../utils/index')
|
const { getTitlePrefixAtEnd } = require('../utils/index')
|
||||||
|
|
||||||
class Series extends Model {
|
class Series extends Model {
|
||||||
@ -23,36 +22,6 @@ class Series extends Model {
|
|||||||
this.updatedAt
|
this.updatedAt
|
||||||
}
|
}
|
||||||
|
|
||||||
getOldSeries() {
|
|
||||||
return new oldSeries({
|
|
||||||
id: this.id,
|
|
||||||
name: this.name,
|
|
||||||
description: this.description,
|
|
||||||
libraryId: this.libraryId,
|
|
||||||
addedAt: this.createdAt.valueOf(),
|
|
||||||
updatedAt: this.updatedAt.valueOf()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
static updateFromOld(oldSeries) {
|
|
||||||
const series = this.getFromOld(oldSeries)
|
|
||||||
return this.update(series, {
|
|
||||||
where: {
|
|
||||||
id: series.id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
static getFromOld(oldSeries) {
|
|
||||||
return {
|
|
||||||
id: oldSeries.id,
|
|
||||||
name: oldSeries.name,
|
|
||||||
nameIgnorePrefix: oldSeries.nameIgnorePrefix,
|
|
||||||
description: oldSeries.description,
|
|
||||||
libraryId: oldSeries.libraryId
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if series exists
|
* Check if series exists
|
||||||
* @param {string} seriesId
|
* @param {string} seriesId
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
const uuidv4 = require("uuid").v4
|
|
||||||
const { getTitleIgnorePrefix, getTitlePrefixAtEnd } = require('../../utils/index')
|
|
||||||
|
|
||||||
class Series {
|
|
||||||
constructor(series) {
|
|
||||||
this.id = null
|
|
||||||
this.name = null
|
|
||||||
this.description = null
|
|
||||||
this.addedAt = null
|
|
||||||
this.updatedAt = null
|
|
||||||
this.libraryId = null
|
|
||||||
|
|
||||||
if (series) {
|
|
||||||
this.construct(series)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
construct(series) {
|
|
||||||
this.id = series.id
|
|
||||||
this.name = series.name
|
|
||||||
this.description = series.description || null
|
|
||||||
this.addedAt = series.addedAt
|
|
||||||
this.updatedAt = series.updatedAt
|
|
||||||
this.libraryId = series.libraryId
|
|
||||||
}
|
|
||||||
|
|
||||||
get nameIgnorePrefix() {
|
|
||||||
if (!this.name) return ''
|
|
||||||
return getTitleIgnorePrefix(this.name)
|
|
||||||
}
|
|
||||||
|
|
||||||
toJSON() {
|
|
||||||
return {
|
|
||||||
id: this.id,
|
|
||||||
name: this.name,
|
|
||||||
nameIgnorePrefix: getTitlePrefixAtEnd(this.name),
|
|
||||||
description: this.description,
|
|
||||||
addedAt: this.addedAt,
|
|
||||||
updatedAt: this.updatedAt,
|
|
||||||
libraryId: this.libraryId
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
toJSONMinimal(sequence) {
|
|
||||||
return {
|
|
||||||
id: this.id,
|
|
||||||
name: this.name,
|
|
||||||
sequence
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setData(data, libraryId) {
|
|
||||||
this.id = uuidv4()
|
|
||||||
this.name = data.name
|
|
||||||
this.description = data.description || null
|
|
||||||
this.addedAt = Date.now()
|
|
||||||
this.updatedAt = Date.now()
|
|
||||||
this.libraryId = libraryId
|
|
||||||
}
|
|
||||||
|
|
||||||
update(series) {
|
|
||||||
if (!series) return false
|
|
||||||
const keysToUpdate = ['name', 'description']
|
|
||||||
let hasUpdated = false
|
|
||||||
for (const key of keysToUpdate) {
|
|
||||||
if (series[key] !== undefined && series[key] !== this[key]) {
|
|
||||||
this[key] = series[key]
|
|
||||||
hasUpdated = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return hasUpdated
|
|
||||||
}
|
|
||||||
|
|
||||||
checkNameEquals(name) {
|
|
||||||
if (!name || !this.name) return false
|
|
||||||
return this.name.toLowerCase() == name.toLowerCase().trim()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
module.exports = Series
|
|
@ -196,7 +196,7 @@ module.exports = {
|
|||||||
* @param {import('../../models/User')} user
|
* @param {import('../../models/User')} user
|
||||||
* @param {string[]} include
|
* @param {string[]} include
|
||||||
* @param {number} limit
|
* @param {number} limit
|
||||||
* @returns {{ series:import('../../objects/entities/Series')[], count:number}}
|
* @returns {{ series:any[], count:number}}
|
||||||
*/
|
*/
|
||||||
async getSeriesMostRecentlyAdded(library, user, include, limit) {
|
async getSeriesMostRecentlyAdded(library, user, include, limit) {
|
||||||
if (!library.isBook) return { series: [], count: 0 }
|
if (!library.isBook) return { series: [], count: 0 }
|
||||||
|
Loading…
Reference in New Issue
Block a user