51 lines
998 B
Go
51 lines
998 B
Go
package db
|
|
|
|
import (
|
|
"errors"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/clause"
|
|
"seanime/internal/database/models"
|
|
)
|
|
|
|
func (db *Database) GetMalInfo() (*models.Mal, error) {
|
|
// Get the first entry
|
|
var res models.Mal
|
|
err := db.gormdb.First(&res, 1).Error
|
|
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, errors.New("MAL not connected")
|
|
} else if err != nil {
|
|
return nil, err
|
|
}
|
|
return &res, nil
|
|
}
|
|
|
|
func (db *Database) UpsertMalInfo(info *models.Mal) (*models.Mal, error) {
|
|
err := db.gormdb.Clauses(clause.OnConflict{
|
|
Columns: []clause.Column{{Name: "id"}},
|
|
UpdateAll: true,
|
|
}).Create(info).Error
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return info, nil
|
|
}
|
|
|
|
func (db *Database) InsertMalInfo(info *models.Mal) (*models.Mal, error) {
|
|
err := db.gormdb.Create(info).Error
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return info, nil
|
|
}
|
|
|
|
func (db *Database) DeleteMalInfo() error {
|
|
err := db.gormdb.Delete(&models.Mal{}, 1).Error
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|