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
|
||||
|
||||
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