package dbase import ( "database/sql" "fmt" _ "github.com/lib/pq" ) type Deps struct { Host string Port string Username string Password string DBName string } func Connect(deps Deps) (*sql.DB, error) { dsn := fmt.Sprintf( "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", deps.Host, deps.Port, deps.Username, deps.Password, deps.DBName) db, err := sql.Open("postgres", dsn) if err != nil { return nil, err } if err = db.Ping(); err != nil { db.Close() return nil, fmt.Errorf("failed to connect to DB: %w", err) } return db, nil }