Try to make esi use db.go
This commit is contained in:
29
db.go
29
db.go
@@ -10,6 +10,9 @@ import (
|
||||
type DB interface {
|
||||
DB() *gorm.DB
|
||||
Raw(sql string, args ...any) *gorm.DB
|
||||
GetTokenForCharacter(characterName string) (*Token, error)
|
||||
SaveTokenForCharacter(token *Token) error
|
||||
AutoMigrate(dst ...interface{}) error
|
||||
}
|
||||
|
||||
type DBWrapper struct {
|
||||
@@ -21,7 +24,11 @@ var db *DBWrapper
|
||||
func GetDB() (DB, error) {
|
||||
var err error
|
||||
|
||||
dbFile := filepath.Join("data.sqlite")
|
||||
if db != nil {
|
||||
return db, nil
|
||||
}
|
||||
|
||||
dbFile := filepath.Join(options.DBPath)
|
||||
db, err := gorm.Open(sqlite.Open(dbFile), &gorm.Config{
|
||||
// SkipDefaultTransaction: true,
|
||||
PrepareStmt: true,
|
||||
@@ -34,7 +41,6 @@ func GetDB() (DB, error) {
|
||||
return &DBWrapper{db: db}, nil
|
||||
}
|
||||
|
||||
|
||||
// Just a wrapper
|
||||
func (db *DBWrapper) Raw(sql string, args ...any) *gorm.DB {
|
||||
return db.db.Raw(sql, args...)
|
||||
@@ -42,4 +48,21 @@ func (db *DBWrapper) Raw(sql string, args ...any) *gorm.DB {
|
||||
|
||||
func (db *DBWrapper) DB() *gorm.DB {
|
||||
return db.db
|
||||
}
|
||||
}
|
||||
|
||||
func (db *DBWrapper) GetTokenForCharacter(characterName string) (*Token, error) {
|
||||
var token Token
|
||||
err := db.db.Where("character_name = ?", characterName).First(&token).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &token, nil
|
||||
}
|
||||
|
||||
func (db *DBWrapper) SaveTokenForCharacter(token *Token) error {
|
||||
return db.db.Save(token).Error
|
||||
}
|
||||
|
||||
func (db *DBWrapper) AutoMigrate(dst ...interface{}) error {
|
||||
return db.db.AutoMigrate(dst...)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user