src to pkg, impl lobby.Closed

This commit is contained in:
Bel LaPointe
2025-02-12 16:48:58 -07:00
parent 1f6b79aa3b
commit e35ddef4b7
18 changed files with 117 additions and 21 deletions

19
pkg/lib/db/ctx.go Normal file
View File

@@ -0,0 +1,19 @@
package db
import (
"context"
"database/sql"
)
func Inject(ctx context.Context, db *sql.DB) context.Context {
return context.WithValue(ctx, "__db__", db)
}
func From(ctx context.Context) *sql.DB {
return Extract(ctx)
}
func Extract(ctx context.Context) *sql.DB {
v, _ := ctx.Value("__db__").(*sql.DB)
return v
}

22
pkg/lib/db/ctx_test.go Normal file
View File

@@ -0,0 +1,22 @@
package db_test
import (
"context"
"database/sql"
"gitea/price-is-wrong/pkg/lib/db"
"testing"
)
func TestInjectDB(t *testing.T) {
ctx := context.Background()
d := &sql.DB{}
injected := db.Inject(ctx, d)
extracted := db.Extract(injected)
if d != extracted {
t.Fatal("couldnt extract injected db")
} else if extracted != db.From(injected) {
t.Fatal("couldnt from extracted db")
}
}

21
pkg/lib/db/new.go Normal file
View File

@@ -0,0 +1,21 @@
package db
import (
"context"
"database/sql"
_ "github.com/glebarez/sqlite"
)
func New(ctx context.Context, driver, conn string) (*sql.DB, error) {
db, err := sql.Open(driver, conn)
if err != nil {
return nil, err
}
if err := db.PingContext(ctx); err != nil {
return nil, err
}
return db, nil
}