diff options
| author | Alexander Kavon <me+git@alexkavon.com> | 2024-01-22 00:37:21 -0500 |
|---|---|---|
| committer | Alexander Kavon <me+git@alexkavon.com> | 2024-01-22 00:37:21 -0500 |
| commit | b3c1584ec4a5bcba84a10cd9b6501d0e978c2457 (patch) | |
| tree | 87fa8e9f21fd07b1a679a2ed05a3c931a85212cb /src/db | |
| parent | d6fdb3a460eb228d7b1cd7870b7ef6c8c7391f0b (diff) | |
update db adapter, server, routes, and user model to be sqlboiler compatible
Diffstat (limited to 'src/db')
| -rw-r--r-- | src/db/db.go | 47 |
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() } |
