Ajouter type dbclient.DBClient et func dbclient.New
This commit is contained in:
parent
525012eee6
commit
76a3b9b105
1 changed files with 38 additions and 0 deletions
|
@ -1,2 +1,40 @@
|
||||||
// Package dbclient provides the database client used by the API server
|
// Package dbclient provides the database client used by the API server
|
||||||
package dbclient
|
package dbclient
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/jmoiron/sqlx"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DBClient holds a *sqlx.DB and implements methods to manipulate the database
|
||||||
|
type DBClient struct {
|
||||||
|
DB *sqlx.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(host, database, user, password string, port int, useSSL bool) (*DBClient, error) {
|
||||||
|
var SSLMode string
|
||||||
|
|
||||||
|
switch useSSL {
|
||||||
|
case true:
|
||||||
|
SSLMode = "enable"
|
||||||
|
case false:
|
||||||
|
SSLMode = "disable"
|
||||||
|
}
|
||||||
|
|
||||||
|
connectionString := fmt.Sprintf("postgres://%s:%s@%s:%d/%s?sslmode=%s",
|
||||||
|
user,
|
||||||
|
password,
|
||||||
|
host,
|
||||||
|
port,
|
||||||
|
database,
|
||||||
|
SSLMode,
|
||||||
|
)
|
||||||
|
|
||||||
|
db, err := sqlx.Connect("pgx", connectionString)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &DBClient{DB: db}, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue