49 lines
751 B
Go

package repository
import (
"database/sql"
"log/slog"
"os"
"sync"
)
var (
dbConnOnce sync.Once
dbConn *sql.DB
repo *Queries
)
func Connect(dsnURI string) {
dbConnOnce.Do(func() {
var err error
dbConn, err = sql.Open("sqlite", dsnURI)
if err != nil {
slog.Error("Fatal error")
}
repo = New(dbConn)
err = checkDBVersion(dbConn)
if err != nil {
slog.Error("DB Connection: Failed DB version check", "error", err)
os.Exit(1)
}
})
}
func GetConnection() (*sql.DB, error) {
if dbConn == nil {
slog.Error("Database connection not initialized!")
}
return dbConn, nil
}
func GetRepository() *Queries {
if repo == nil {
slog.Error("Database connection not initialized!")
os.Exit(1)
}
return repo
}