Ajouter type dbclient.DBClient et func dbclient.New

This commit is contained in:
Victor Lacasse-Beaudoin 2023-09-16 16:28:18 -04:00
parent 525012eee6
commit 76a3b9b105

View file

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