refactor(store): replace project and skill models with generated models
Some checks failed
CI / build-and-test (push) Failing after -31m25s
Some checks failed
CI / build-and-test (push) Failing after -31m25s
* Update project creation and retrieval to use generated models * Modify skill addition and listing to utilize generated models * Refactor thought handling to incorporate generated models * Adjust tool annotations to align with new model structure * Update API calls in the UI to use new ResolveSpec-based endpoints * Enhance stats retrieval logic to aggregate thought metadata
This commit is contained in:
@@ -2,18 +2,23 @@ package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/jackc/pgx/v5"
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
pgxvec "github.com/pgvector/pgvector-go/pgx"
|
||||
"github.com/uptrace/bun"
|
||||
"github.com/uptrace/bun/dialect/pgdialect"
|
||||
"github.com/uptrace/bun/driver/pgdriver"
|
||||
|
||||
"git.warky.dev/wdevs/amcs/internal/config"
|
||||
)
|
||||
|
||||
type DB struct {
|
||||
pool *pgxpool.Pool
|
||||
bun *bun.DB
|
||||
}
|
||||
|
||||
func New(ctx context.Context, cfg config.DatabaseConfig) (*DB, error) {
|
||||
@@ -35,8 +40,20 @@ func New(ctx context.Context, cfg config.DatabaseConfig) (*DB, error) {
|
||||
return nil, fmt.Errorf("create database pool: %w", err)
|
||||
}
|
||||
|
||||
db := &DB{pool: pool}
|
||||
bunSQLDB := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(cfg.URL)))
|
||||
bunSQLDB.SetMaxOpenConns(int(cfg.MaxConns))
|
||||
bunSQLDB.SetMaxIdleConns(int(cfg.MinConns))
|
||||
bunSQLDB.SetConnMaxLifetime(cfg.MaxConnLifetime)
|
||||
bunSQLDB.SetConnMaxIdleTime(cfg.MaxConnIdleTime)
|
||||
|
||||
db := &DB{
|
||||
pool: pool,
|
||||
bun: bun.NewDB(bunSQLDB, pgdialect.New()),
|
||||
}
|
||||
if err := db.Ping(ctx); err != nil {
|
||||
if db.bun != nil {
|
||||
_ = db.bun.Close()
|
||||
}
|
||||
pool.Close()
|
||||
return nil, err
|
||||
}
|
||||
@@ -45,11 +62,16 @@ func New(ctx context.Context, cfg config.DatabaseConfig) (*DB, error) {
|
||||
}
|
||||
|
||||
func (db *DB) Close() {
|
||||
if db == nil || db.pool == nil {
|
||||
if db == nil {
|
||||
return
|
||||
}
|
||||
|
||||
db.pool.Close()
|
||||
if db.bun != nil {
|
||||
_ = db.bun.Close()
|
||||
}
|
||||
if db.pool != nil {
|
||||
db.pool.Close()
|
||||
}
|
||||
}
|
||||
|
||||
func (db *DB) Ping(ctx context.Context) error {
|
||||
@@ -102,3 +124,10 @@ func (db *DB) VerifyRequirements(ctx context.Context) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DB) Bun() *bun.DB {
|
||||
if db == nil {
|
||||
return nil
|
||||
}
|
||||
return db.bun
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user