Files
gun-manager-backend/sql/client.go
2023-08-07 10:14:38 -04:00

44 lines
657 B
Go

package sql
import (
"context"
"database/sql"
sqlc "git.siteworxpro.com/gun-manager/sql/db"
_ "github.com/mattn/go-sqlite3"
)
type Db struct {
db *sql.DB
created bool
Queries *sqlc.Queries
}
var dbConnection Db
func NewDb(file string) (*Db, error) {
if dbConnection.created {
return &dbConnection, nil
}
db, err := sql.Open("sqlite3", file)
if err != nil {
return nil, err
}
dbConnection.db = db
dbConnection.created = true
_, err = dbConnection.db.Conn(context.Background())
if err != nil {
return nil, err
}
dbConnection.Queries = sqlc.New(db)
return &dbConnection, nil
}
func GetDb() *Db {
return &dbConnection
}