feat: register MSSQL and Postgres drivers in db-wrapper for improved factory pattern support
This commit is contained in:
@@ -2,18 +2,18 @@ package dbwrapper
|
||||
|
||||
import "fmt"
|
||||
|
||||
const (
|
||||
postgresDialect = "postgres"
|
||||
mssqlDialect = "sqlserver"
|
||||
)
|
||||
type Factory func() DbWrapper
|
||||
|
||||
func NewWrapper(driverType string) (DbWrapper, error) {
|
||||
switch driverType {
|
||||
case postgresDialect:
|
||||
return &postgresDbWrapper{dialect: postgresDialect}, nil
|
||||
case mssqlDialect:
|
||||
return &mssqlDbWrapper{dialect: mssqlDialect}, nil
|
||||
default:
|
||||
var drivers = make(map[string]Factory)
|
||||
|
||||
func Register(name string, factory Factory) {
|
||||
drivers[name] = factory
|
||||
}
|
||||
|
||||
func New(driverType string) (DbWrapper, error) {
|
||||
factory, ok := drivers[driverType]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("driver not yet supported: %s", driverType)
|
||||
}
|
||||
return factory(), nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user