[add] initial commit

This commit is contained in:
2022-09-30 14:59:51 -05:00
commit 3da5d6a560
15 changed files with 825 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
package application
import (
"errors"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
type DatabaseType uint8
const (
SQL DatabaseType = iota
SQLite3
)
type Database struct {
databaseType DatabaseType
path string
db *gorm.DB
mode Mode
}
func (d *Database) open() error {
var err error
switch d.databaseType {
case SQL:
err = errors.New("not yet implemented")
case SQLite3:
var config gorm.Config
if d.mode == Debug {
config = gorm.Config{}
} else {
config = gorm.Config{Logger: logger.Default.LogMode(logger.Silent)}
}
db, err := gorm.Open(sqlite.Open(d.path), &config)
if err == nil {
d.db = db
}
default:
err = errors.New("unknown database type")
}
return err
}
func (d *Database) close() error {
db, err := d.db.DB()
if err == nil {
err = db.Close()
}
return err
}