diff options
| author | Alexander Kavon <hawk@alexkavon.com> | 2023-11-29 19:16:50 -0500 |
|---|---|---|
| committer | Alexander Kavon <hawk@alexkavon.com> | 2023-11-29 19:19:12 -0500 |
| commit | f3515313f4d79dad5ad2ff8c72353e00e1c9cc70 (patch) | |
| tree | 01b0513f3fdb4cef0a4aaf67f4bc6c967856a4ab | |
| parent | 1c32e1497525bc6f609898f0f79bd6cc3e6d92fb (diff) | |
pass DbValues and convert to pgx.NamedArgs in db.go to save an import
| -rw-r--r-- | src/db/db.go | 9 | ||||
| -rw-r--r-- | src/user/user.go | 9 |
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 |
