diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-02-22 22:59:53 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-02-22 23:15:41 +0100 |
commit | cd1a6cbd06d3b75adf708fcd2a7974bf94452248 (patch) | |
tree | e41f7bb1cbda499837943fcb5eedfa0f61b2adff /model | |
parent | 9a97638e0ddd7fbc135c63d7e9055529313ddb3c (diff) | |
download | gosten-cd1a6cbd06d3b75adf708fcd2a7974bf94452248.tar.gz gosten-cd1a6cbd06d3b75adf708fcd2a7974bf94452248.tar.bz2 gosten-cd1a6cbd06d3b75adf708fcd2a7974bf94452248.zip |
Switch from mysql to postgres
Diffstat (limited to '')
-rw-r--r-- | model/db.go | 13 | ||||
-rw-r--r-- | model/models.go | 31 | ||||
-rw-r--r-- | model/sexps.sql.go | 16 | ||||
-rw-r--r-- | model/users.sql.go | 17 |
4 files changed, 36 insertions, 41 deletions
diff --git a/model/db.go b/model/db.go index 2e42192..5b6feb0 100644 --- a/model/db.go +++ b/model/db.go @@ -6,14 +6,15 @@ package model import ( "context" - "database/sql" + + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgconn" ) type DBTX interface { - ExecContext(context.Context, string, ...interface{}) (sql.Result, error) - PrepareContext(context.Context, string) (*sql.Stmt, error) - QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) - QueryRowContext(context.Context, string, ...interface{}) *sql.Row + Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error) + Query(context.Context, string, ...interface{}) (pgx.Rows, error) + QueryRow(context.Context, string, ...interface{}) pgx.Row } func New(db DBTX) *Queries { @@ -24,7 +25,7 @@ type Queries struct { db DBTX } -func (q *Queries) WithTx(tx *sql.Tx) *Queries { +func (q *Queries) WithTx(tx pgx.Tx) *Queries { return &Queries{ db: tx, } diff --git a/model/models.go b/model/models.go index be09076..eba1207 100644 --- a/model/models.go +++ b/model/models.go @@ -5,36 +5,35 @@ package model import ( - "database/sql" - "time" + "github.com/jackc/pgx/v5/pgtype" ) type Category struct { ID int32 Name string - ParentID sql.NullInt32 + ParentID pgtype.Int4 UserID int32 } type ConstExpense struct { ID int32 - Description sql.NullString - Expense string - Months uint8 - Start time.Time - End time.Time - PrevID sql.NullInt32 + Description pgtype.Text + Expense pgtype.Numeric + Months int16 + Start pgtype.Date + End pgtype.Date + PrevID pgtype.Int4 CategoryID int32 UserID int32 } type SingleExpense struct { - ID int32 - Description sql.NullString - Expense string - Year uint16 - Month uint8 - Day uint8 + ID int64 + Description pgtype.Text + Expense pgtype.Numeric + Year int16 + Month int16 + Day int16 CategoryID int32 UserID int32 } @@ -43,5 +42,5 @@ type User struct { ID int32 Name string Pwd string - Description sql.NullString + Description pgtype.Text } diff --git a/model/sexps.sql.go b/model/sexps.sql.go index 1108e55..8a54443 100644 --- a/model/sexps.sql.go +++ b/model/sexps.sql.go @@ -7,27 +7,28 @@ package model import ( "context" - "database/sql" + + "github.com/jackc/pgx/v5/pgtype" ) const getSingleExpenses = `-- name: GetSingleExpenses :many SELECT id, description FROM single_expenses - WHERE user_id = ? + WHERE user_id = $1 ` type GetSingleExpensesRow struct { - ID int32 - Description sql.NullString + ID int64 + Description pgtype.Text } // GetSingleExpenses // // SELECT id, description // FROM single_expenses -// WHERE user_id = ? +// WHERE user_id = $1 func (q *Queries) GetSingleExpenses(ctx context.Context, userID int32) ([]GetSingleExpensesRow, error) { - rows, err := q.db.QueryContext(ctx, getSingleExpenses, userID) + rows, err := q.db.Query(ctx, getSingleExpenses, userID) if err != nil { return nil, err } @@ -40,9 +41,6 @@ func (q *Queries) GetSingleExpenses(ctx context.Context, userID int32) ([]GetSin } items = append(items, i) } - if err := rows.Close(); err != nil { - return nil, err - } if err := rows.Err(); err != nil { return nil, err } diff --git a/model/users.sql.go b/model/users.sql.go index 87ae961..e63dacc 100644 --- a/model/users.sql.go +++ b/model/users.sql.go @@ -12,16 +12,16 @@ import ( const getUserById = `-- name: GetUserById :one SELECT id, name, pwd, description FROM users - WHERE id = ? + WHERE id = $1 ` // GetUserById // // SELECT id, name, pwd, description // FROM users -// WHERE id = ? +// WHERE id = $1 func (q *Queries) GetUserById(ctx context.Context, id int32) (User, error) { - row := q.db.QueryRowContext(ctx, getUserById, id) + row := q.db.QueryRow(ctx, getUserById, id) var i User err := row.Scan( &i.ID, @@ -35,16 +35,16 @@ func (q *Queries) GetUserById(ctx context.Context, id int32) (User, error) { const getUserByName = `-- name: GetUserByName :one SELECT id, name, pwd, description FROM users - WHERE LOWER(name) = LOWER(?) + WHERE LOWER(name) = LOWER($1) ` // GetUserByName // // SELECT id, name, pwd, description // FROM users -// WHERE LOWER(name) = LOWER(?) +// WHERE LOWER(name) = LOWER($1) func (q *Queries) GetUserByName(ctx context.Context, lower string) (User, error) { - row := q.db.QueryRowContext(ctx, getUserByName, lower) + row := q.db.QueryRow(ctx, getUserByName, lower) var i User err := row.Scan( &i.ID, @@ -65,7 +65,7 @@ SELECT id, name, pwd, description // SELECT id, name, pwd, description // FROM users func (q *Queries) GetUsers(ctx context.Context) ([]User, error) { - rows, err := q.db.QueryContext(ctx, getUsers) + rows, err := q.db.Query(ctx, getUsers) if err != nil { return nil, err } @@ -83,9 +83,6 @@ func (q *Queries) GetUsers(ctx context.Context) ([]User, error) { } items = append(items, i) } - if err := rows.Close(); err != nil { - return nil, err - } if err := rows.Err(); err != nil { return nil, err } |