25 lines
451 B
Go
25 lines
451 B
Go
|
package database
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"github.com/jackc/pgx/v4/pgxpool"
|
||
|
"github.com/pkg/errors"
|
||
|
"gitlab.com/wpetit/goweb/service"
|
||
|
)
|
||
|
|
||
|
func ServiceProvider(dsn string) service.Provider {
|
||
|
pool, err := pgxpool.Connect(context.Background(), dsn)
|
||
|
if err != nil {
|
||
|
err = errors.Wrap(err, "could not connect to database")
|
||
|
}
|
||
|
|
||
|
return func(ctn *service.Container) (interface{}, error) {
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return pool, nil
|
||
|
}
|
||
|
}
|