87 lines
1.5 KiB
Go
87 lines
1.5 KiB
Go
package users
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
const createUser = `-- name: CreateUser :one
|
|
INSERT INTO users (
|
|
"user", created_at, updated_at, username, "password"
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5
|
|
)
|
|
RETURNING "user", created_at, updated_at, username, password
|
|
`
|
|
|
|
type CreateUserParams struct {
|
|
User string
|
|
CreatedAt uint64
|
|
UpdatedAt *uint64
|
|
Username string
|
|
Password string
|
|
}
|
|
|
|
func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error) {
|
|
row := q.db.QueryRow(ctx, createUser,
|
|
arg.User,
|
|
arg.CreatedAt,
|
|
arg.UpdatedAt,
|
|
arg.Username,
|
|
arg.Password,
|
|
)
|
|
var i User
|
|
err := row.Scan(
|
|
&i.User,
|
|
&i.CreatedAt,
|
|
i.UpdatedAt,
|
|
&i.Username,
|
|
&i.Password,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getUser = `-- name: GetUser :one
|
|
SELECT "user", created_at, updated_at, username, password FROM users
|
|
WHERE username = $1 LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetUser(ctx context.Context, username string) (User, error) {
|
|
row := q.db.QueryRow(ctx, getUser, username)
|
|
var i User
|
|
err := row.Scan(
|
|
&i.User,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
&i.Username,
|
|
&i.Password,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const updateUser = `-- name: UpdateUser :exec
|
|
UPDATE users
|
|
SET
|
|
updated_at = $2,
|
|
username = $3,
|
|
"password" = $4
|
|
|
|
WHERE "user" = $1
|
|
`
|
|
|
|
type UpdateUserParams struct {
|
|
User string
|
|
UpdatedAt uint64
|
|
Username string
|
|
Password string
|
|
}
|
|
|
|
func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) error {
|
|
_, err := q.db.Exec(ctx, updateUser,
|
|
arg.User,
|
|
arg.UpdatedAt,
|
|
arg.Username,
|
|
arg.Password,
|
|
)
|
|
return err
|
|
}
|