wfc-server/database/connection.go
2026-04-05 09:52:28 -04:00

40 lines
672 B
Go

package database
import (
"context"
"fmt"
"wwfc/common"
"github.com/jackc/pgx/v4/pgxpool"
)
type Connection struct {
pool *pgxpool.Pool
ctx context.Context
}
func Start(config common.Config) Connection {
conn := Connection{
ctx: context.Background(),
}
dbString := fmt.Sprintf("postgres://%s:%s@%s/%s", config.Username, config.Password, config.DatabaseAddress, config.DatabaseName)
dbConf, err := pgxpool.ParseConfig(dbString)
if err != nil {
panic(err)
}
conn.pool, err = pgxpool.ConnectConfig(conn.ctx, dbConf)
if err != nil {
panic(err)
}
return conn
}
func (c *Connection) Close() {
if c != nil && c.pool != nil {
c.pool.Close()
}
}