Fix:New authors not setting lastFirst column, updates for new Series model

This commit is contained in:
advplyr 2024-09-01 15:08:56 -05:00
parent 7ff72a8920
commit db86bfd63d
14 changed files with 234 additions and 225 deletions

View file

@ -1,4 +1,5 @@
const { DataTypes, Model, where, fn, col } = require('sequelize')
const parseNameString = require('../utils/parsers/parseNameString')
class Author extends Model {
constructor(values, options) {
@ -24,6 +25,16 @@ class Author extends Model {
this.createdAt
}
/**
*
* @param {string} name
* @returns {string}
*/
static getLastFirst(name) {
if (!name) return null
return parseNameString.nameToLastFirst(name)
}
/**
* Check if author exists
* @param {string} authorId

View file

@ -1,6 +1,7 @@
const { DataTypes, Model, where, fn, col } = require('sequelize')
const oldSeries = require('../objects/entities/Series')
const { getTitlePrefixAtEnd } = require('../utils/index')
class Series extends Model {
constructor(values, options) {
@ -22,11 +23,6 @@ class Series extends Model {
this.updatedAt
}
static async getAllOldSeries() {
const series = await this.findAll()
return series.map((se) => se.getOldSeries())
}
getOldSeries() {
return new oldSeries({
id: this.id,
@ -47,16 +43,6 @@ class Series extends Model {
})
}
static createFromOld(oldSeries) {
const series = this.getFromOld(oldSeries)
return this.create(series)
}
static createBulkFromOld(oldSeriesObjs) {
const series = oldSeriesObjs.map(this.getFromOld)
return this.bulkCreate(series)
}
static getFromOld(oldSeries) {
return {
id: oldSeries.id,
@ -67,25 +53,6 @@ class Series extends Model {
}
}
static removeById(seriesId) {
return this.destroy({
where: {
id: seriesId
}
})
}
/**
* Get oldSeries by id
* @param {string} seriesId
* @returns {Promise<oldSeries>}
*/
static async getOldById(seriesId) {
const series = await this.findByPk(seriesId)
if (!series) return null
return series.getOldSeries()
}
/**
* Check if series exists
* @param {string} seriesId
@ -96,24 +63,21 @@ class Series extends Model {
}
/**
* Get old series by name and libraryId. name case insensitive
* Get series by name and libraryId. name case insensitive
*
* @param {string} seriesName
* @param {string} libraryId
* @returns {Promise<oldSeries>}
* @returns {Promise<Series>}
*/
static async getOldByNameAndLibrary(seriesName, libraryId) {
const series = (
await this.findOne({
where: [
where(fn('lower', col('name')), seriesName.toLowerCase()),
{
libraryId
}
]
})
)?.getOldSeries()
return series
static async getByNameAndLibrary(seriesName, libraryId) {
return this.findOne({
where: [
where(fn('lower', col('name')), seriesName.toLowerCase()),
{
libraryId
}
]
})
}
/**
@ -163,6 +127,26 @@ class Series extends Model {
})
Series.belongsTo(library)
}
toOldJSON() {
return {
id: this.id,
name: this.name,
nameIgnorePrefix: getTitlePrefixAtEnd(this.name),
description: this.description,
addedAt: this.createdAt.valueOf(),
updatedAt: this.updatedAt.valueOf(),
libraryId: this.libraryId
}
}
toJSONMinimal(sequence) {
return {
id: this.id,
name: this.name,
sequence
}
}
}
module.exports = Series