node build fixed
This commit is contained in:
59
seanime-2.9.10/internal/database/db/account.go
Normal file
59
seanime-2.9.10/internal/database/db/account.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"seanime/internal/database/models"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
var accountCache *models.Account
|
||||
|
||||
func (db *Database) UpsertAccount(acc *models.Account) (*models.Account, error) {
|
||||
err := db.gormdb.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
UpdateAll: true,
|
||||
}).Create(acc).Error
|
||||
|
||||
if err != nil {
|
||||
db.Logger.Error().Err(err).Msg("Failed to save account in the database")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if acc.Username != "" {
|
||||
accountCache = acc
|
||||
} else {
|
||||
accountCache = nil
|
||||
}
|
||||
|
||||
return acc, nil
|
||||
}
|
||||
|
||||
func (db *Database) GetAccount() (*models.Account, error) {
|
||||
|
||||
if accountCache != nil {
|
||||
return accountCache, nil
|
||||
}
|
||||
|
||||
var acc models.Account
|
||||
err := db.gormdb.Last(&acc).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if acc.Username == "" || acc.Token == "" || acc.Viewer == nil {
|
||||
return nil, errors.New("account not found")
|
||||
}
|
||||
|
||||
accountCache = &acc
|
||||
|
||||
return &acc, err
|
||||
}
|
||||
|
||||
// GetAnilistToken retrieves the AniList token from the account or returns an empty string
|
||||
func (db *Database) GetAnilistToken() string {
|
||||
acc, err := db.GetAccount()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return acc.Token
|
||||
}
|
||||
Reference in New Issue
Block a user