aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kavon <hawk@alexkavon.com>2023-11-29 19:16:50 -0500
committerAlexander Kavon <hawk@alexkavon.com>2023-11-29 19:19:12 -0500
commitf3515313f4d79dad5ad2ff8c72353e00e1c9cc70 (patch)
tree01b0513f3fdb4cef0a4aaf67f4bc6c967856a4ab
parent1c32e1497525bc6f609898f0f79bd6cc3e6d92fb (diff)
pass DbValues and convert to pgx.NamedArgs in db.go to save an import
-rw-r--r--src/db/db.go9
-rw-r--r--src/user/user.go9
2 files changed, 14 insertions, 4 deletions
diff --git a/src/db/db.go b/src/db/db.go
index 6f617c2..d74c874 100644
--- a/src/db/db.go
+++ b/src/db/db.go
@@ -16,6 +16,8 @@ type Database struct {
p *pgxpool.Pool
}
+type DbValues pgx.NamedArgs
+
func NewDb(config *conf.Conf) *Database {
pool, err := pgxpool.New(context.Background(), config.Db.Url)
if err != nil {
@@ -33,13 +35,16 @@ func NewDb(config *conf.Conf) *Database {
}
}
-func (d *Database) InsertTable(table string, columns []string, values pgx.NamedArgs) error {
+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, values)
+ row, err := d.p.Exec(ctx, query, namedArgs)
if err != nil {
return err
}
diff --git a/src/user/user.go b/src/user/user.go
index e35c7c5..d9fca6b 100644
--- a/src/user/user.go
+++ b/src/user/user.go
@@ -6,7 +6,6 @@ import (
"fmt"
"time"
- "github.com/jackc/pgx/v5"
"gitlab.com/alexkavon/newsstand/src/db"
"golang.org/x/crypto/argon2"
)
@@ -23,11 +22,17 @@ type User struct {
Db *db.Database
}
+func NewUser(d *db.Database) *User {
+ return &User{
+ Db: d,
+ }
+}
+
func (u *User) Insert() error {
err := u.Db.InsertTable(
"users",
[]string{"username", "secret", "email"},
- pgx.NamedArgs{"username": u.Username, "secret": string(u.hash), "email": u.Email},
+ db.DbValues{"username": u.Username, "secret": string(u.hash), "email": u.Email},
)
if err != nil {
return err