From 1c32e1497525bc6f609898f0f79bd6cc3e6d92fb Mon Sep 17 00:00:00 2001 From: Alexander Kavon Date: Wed, 29 Nov 2023 02:05:38 -0500 Subject: user create/insert into users table, pgxpool defer moved to top of app, me.tmpl.html, secret hashing with argon2id, updated migrations --- src/db/db.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/db') diff --git a/src/db/db.go b/src/db/db.go index 2b72382..6f617c2 100644 --- a/src/db/db.go +++ b/src/db/db.go @@ -2,8 +2,11 @@ package db import ( "context" + "fmt" "log" + "strings" + "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" "gitlab.com/alexkavon/newsstand/src/conf" @@ -18,7 +21,6 @@ func NewDb(config *conf.Conf) *Database { if err != nil { log.Fatal(err) } - defer pool.Close() var testquery string err = pool.QueryRow(context.Background(), "select 'Hello, PostgreSQL!'").Scan(&testquery) @@ -30,3 +32,29 @@ func NewDb(config *conf.Conf) *Database { p: pool, } } + +func (d *Database) InsertTable(table string, columns []string, values pgx.NamedArgs) error { + columnstr := stringifyColumns(columns, "") + valuesstr := stringifyColumns(columns, "@") + query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (%s) RETURNING *", table, columnstr, valuesstr) + log.Println(query, values) + ctx := context.Background() + row, err := d.p.Exec(ctx, query, values) + if err != nil { + return err + } + log.Println("Row", row) + return nil +} + +func (d *Database) Close() { + d.p.Close() +} + +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, ", ") +} -- cgit v1.2.3