Yimaru-BackEnd/internal/repository/store.go
2025-03-26 23:50:19 +03:00

42 lines
701 B
Go

package repository
import (
"context"
"time"
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
"github.com/jackc/pgx/v5/pgxpool"
)
type Store struct {
queries *dbgen.Queries
conn *pgxpool.Pool
}
func NewStore(conn *pgxpool.Pool) *Store {
queries := dbgen.New(conn)
return &Store{
queries: queries,
conn: conn,
}
}
func OpenDB(url string) (*pgxpool.Pool, func(), error) {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
conn, err := pgxpool.New(ctx, url)
if err != nil {
return nil, func() {}, err
}
if err := conn.Ping(ctx); err != nil {
return nil, func() {}, err
}
return conn, func() {
conn.Close()
}, nil
}