Files
seanime-docker/seanime-2.9.10/internal/database/db/theme.go
2025-09-20 14:08:38 +01:00

48 lines
857 B
Go

package db
import (
"gorm.io/gorm/clause"
"seanime/internal/database/models"
)
var themeCache *models.Theme
func (db *Database) GetTheme() (*models.Theme, error) {
if themeCache != nil {
return themeCache, nil
}
var theme models.Theme
err := db.gormdb.Where("id = ?", 1).Find(&theme).Error
if err != nil {
return nil, err
}
themeCache = &theme
return &theme, nil
}
// UpsertTheme updates the theme settings.
func (db *Database) UpsertTheme(settings *models.Theme) (*models.Theme, error) {
err := db.gormdb.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "id"}},
UpdateAll: true,
}).Create(settings).Error
if err != nil {
db.Logger.Error().Err(err).Msg("db: Failed to save theme in the database")
return nil, err
}
db.Logger.Debug().Msg("db: Theme saved")
themeCache = settings
return settings, nil
}