aboutsummaryrefslogtreecommitdiff
path: root/src/db/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/db.go')
-rw-r--r--src/db/db.go47
1 files changed, 13 insertions, 34 deletions
diff --git a/src/db/db.go b/src/db/db.go
index d74c874..198b2be 100644
--- a/src/db/db.go
+++ b/src/db/db.go
@@ -2,23 +2,20 @@ package db
import (
"context"
- "fmt"
+ "database/sql"
"log"
- "strings"
- "github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgxpool"
+ "github.com/jackc/pgx/v5/stdlib"
"gitlab.com/alexkavon/newsstand/src/conf"
)
-type Database struct {
- p *pgxpool.Pool
+type Db struct {
+ pool *pgxpool.Pool
}
-type DbValues pgx.NamedArgs
-
-func NewDb(config *conf.Conf) *Database {
+func NewDb(config *conf.Conf) *Db {
pool, err := pgxpool.New(context.Background(), config.Db.Url)
if err != nil {
log.Fatal(err)
@@ -30,36 +27,18 @@ func NewDb(config *conf.Conf) *Database {
log.Fatal(err)
}
log.Println("Database connection pool created.", testquery)
- return &Database{
- p: pool,
- }
+ return &Db{pool}
+
}
-func (d *Database) InsertTable(table string, columns []string, values DbValues) error {
- columnstr := stringifyColumns(columns, "")
- valuesstr := stringifyColumns(columns, "@")
- query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (%s) RETURNING *", table, columnstr, valuesstr)
- log.Println(query, values)
- // Convert DbValues to pgx.NamedArgs type to use NamedArgs type features
- namedArgs := pgx.NamedArgs(values)
- // TODO Use r.Context() from HTTP Request?
- ctx := context.Background()
- row, err := d.p.Exec(ctx, query, namedArgs)
- if err != nil {
- return err
- }
- log.Println("Row", row)
- return nil
+func (d *Db) Conn() *pgxpool.Pool {
+ return d.pool
}
-func (d *Database) Close() {
- d.p.Close()
+func (d *Db) ToSqlDb() *sql.DB {
+ return stdlib.OpenDBFromPool(d.pool)
}
-func stringifyColumns(columns []string, prefix string) string {
- ncolumns := []string{}
- for _, v := range columns {
- ncolumns = append(ncolumns, fmt.Sprintf("%s%s", prefix, v))
- }
- return strings.Join(ncolumns, ", ")
+func (d *Db) Close() {
+ d.pool.Close()
}