mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-12-20 19:06:06 +01:00
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
|
const { DataTypes, Model } = require('sequelize')
|
||
|
|
||
|
const oldEmailSettings = require('../objects/settings/EmailSettings')
|
||
|
const oldServerSettings = require('../objects/settings/ServerSettings')
|
||
|
const oldNotificationSettings = require('../objects/settings/NotificationSettings')
|
||
|
|
||
|
module.exports = (sequelize) => {
|
||
|
class Setting extends Model {
|
||
|
static async getOldSettings() {
|
||
|
const settings = (await this.findAll()).map(se => se.value)
|
||
|
|
||
|
|
||
|
const emailSettingsJson = settings.find(se => se.id === 'email-settings')
|
||
|
const serverSettingsJson = settings.find(se => se.id === 'server-settings')
|
||
|
const notificationSettingsJson = settings.find(se => se.id === 'notification-settings')
|
||
|
|
||
|
return {
|
||
|
settings,
|
||
|
emailSettings: new oldEmailSettings(emailSettingsJson),
|
||
|
serverSettings: new oldServerSettings(serverSettingsJson),
|
||
|
notificationSettings: new oldNotificationSettings(notificationSettingsJson)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static updateSettingObj(setting) {
|
||
|
return this.upsert({
|
||
|
key: setting.id,
|
||
|
value: setting
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Setting.init({
|
||
|
key: {
|
||
|
type: DataTypes.STRING,
|
||
|
primaryKey: true
|
||
|
},
|
||
|
value: DataTypes.JSON
|
||
|
}, {
|
||
|
sequelize,
|
||
|
modelName: 'setting'
|
||
|
})
|
||
|
|
||
|
return Setting
|
||
|
}
|