Files
mantrae/internal/db/users.sql.go
d34dscene 040c1ffc35 oof
2025-06-17 00:49:55 +02:00

301 lines
5.9 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.28.0
// source: users.sql
package db
import (
"context"
"time"
)
const countUsers = `-- name: CountUsers :one
SELECT
COUNT(*)
FROM
users
`
func (q *Queries) CountUsers(ctx context.Context) (int64, error) {
row := q.queryRow(ctx, q.countUsersStmt, countUsers)
var count int64
err := row.Scan(&count)
return count, err
}
const createUser = `-- name: CreateUser :one
INSERT INTO
users (username, password, email, is_admin)
VALUES
(?, ?, ?, ?) RETURNING id, username, password, email, is_admin, otp, otp_expiry, last_login, created_at, updated_at
`
type CreateUserParams struct {
Username string `json:"username"`
Password string `json:"password"`
Email *string `json:"email"`
IsAdmin bool `json:"isAdmin"`
}
func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error) {
row := q.queryRow(ctx, q.createUserStmt, createUser,
arg.Username,
arg.Password,
arg.Email,
arg.IsAdmin,
)
var i User
err := row.Scan(
&i.ID,
&i.Username,
&i.Password,
&i.Email,
&i.IsAdmin,
&i.Otp,
&i.OtpExpiry,
&i.LastLogin,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const deleteUser = `-- name: DeleteUser :exec
DELETE FROM users
WHERE
id = ?
`
func (q *Queries) DeleteUser(ctx context.Context, id string) error {
_, err := q.exec(ctx, q.deleteUserStmt, deleteUser, id)
return err
}
const getUserByEmail = `-- name: GetUserByEmail :one
SELECT
id, username, password, email, is_admin, otp, otp_expiry, last_login, created_at, updated_at
FROM
users
WHERE
email = ?
`
func (q *Queries) GetUserByEmail(ctx context.Context, email *string) (User, error) {
row := q.queryRow(ctx, q.getUserByEmailStmt, getUserByEmail, email)
var i User
err := row.Scan(
&i.ID,
&i.Username,
&i.Password,
&i.Email,
&i.IsAdmin,
&i.Otp,
&i.OtpExpiry,
&i.LastLogin,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const getUserByID = `-- name: GetUserByID :one
SELECT
id, username, password, email, is_admin, otp, otp_expiry, last_login, created_at, updated_at
FROM
users
WHERE
id = ?
`
func (q *Queries) GetUserByID(ctx context.Context, id string) (User, error) {
row := q.queryRow(ctx, q.getUserByIDStmt, getUserByID, id)
var i User
err := row.Scan(
&i.ID,
&i.Username,
&i.Password,
&i.Email,
&i.IsAdmin,
&i.Otp,
&i.OtpExpiry,
&i.LastLogin,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const getUserByUsername = `-- name: GetUserByUsername :one
SELECT
id, username, password, email, is_admin, otp, otp_expiry, last_login, created_at, updated_at
FROM
users
WHERE
username = ?
`
func (q *Queries) GetUserByUsername(ctx context.Context, username string) (User, error) {
row := q.queryRow(ctx, q.getUserByUsernameStmt, getUserByUsername, username)
var i User
err := row.Scan(
&i.ID,
&i.Username,
&i.Password,
&i.Email,
&i.IsAdmin,
&i.Otp,
&i.OtpExpiry,
&i.LastLogin,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const listUsers = `-- name: ListUsers :many
SELECT
id, username, password, email, is_admin, otp, otp_expiry, last_login, created_at, updated_at
FROM
users
ORDER BY
username
LIMIT
?
OFFSET
?
`
type ListUsersParams struct {
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
func (q *Queries) ListUsers(ctx context.Context, arg ListUsersParams) ([]User, error) {
rows, err := q.query(ctx, q.listUsersStmt, listUsers, arg.Limit, arg.Offset)
if err != nil {
return nil, err
}
defer rows.Close()
var items []User
for rows.Next() {
var i User
if err := rows.Scan(
&i.ID,
&i.Username,
&i.Password,
&i.Email,
&i.IsAdmin,
&i.Otp,
&i.OtpExpiry,
&i.LastLogin,
&i.CreatedAt,
&i.UpdatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updateUser = `-- name: UpdateUser :one
UPDATE users
SET
username = ?,
email = ?,
is_admin = ?,
updated_at = CURRENT_TIMESTAMP
WHERE
id = ? RETURNING id, username, password, email, is_admin, otp, otp_expiry, last_login, created_at, updated_at
`
type UpdateUserParams struct {
Username string `json:"username"`
Email *string `json:"email"`
IsAdmin bool `json:"isAdmin"`
ID string `json:"id"`
}
func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error) {
row := q.queryRow(ctx, q.updateUserStmt, updateUser,
arg.Username,
arg.Email,
arg.IsAdmin,
arg.ID,
)
var i User
err := row.Scan(
&i.ID,
&i.Username,
&i.Password,
&i.Email,
&i.IsAdmin,
&i.Otp,
&i.OtpExpiry,
&i.LastLogin,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const updateUserLastLogin = `-- name: UpdateUserLastLogin :exec
UPDATE users
SET
last_login = CURRENT_TIMESTAMP
WHERE
id = ?
`
func (q *Queries) UpdateUserLastLogin(ctx context.Context, id string) error {
_, err := q.exec(ctx, q.updateUserLastLoginStmt, updateUserLastLogin, id)
return err
}
const updateUserPassword = `-- name: UpdateUserPassword :exec
UPDATE users
SET
password = ?,
otp = '',
otp_expiry = NULL
WHERE
id = ?
`
type UpdateUserPasswordParams struct {
Password string `json:"password"`
ID string `json:"id"`
}
func (q *Queries) UpdateUserPassword(ctx context.Context, arg UpdateUserPasswordParams) error {
_, err := q.exec(ctx, q.updateUserPasswordStmt, updateUserPassword, arg.Password, arg.ID)
return err
}
const updateUserResetToken = `-- name: UpdateUserResetToken :exec
UPDATE users
SET
otp = ?,
otp_expiry = ?
WHERE
id = ?
`
type UpdateUserResetTokenParams struct {
Otp *string `json:"otp"`
OtpExpiry *time.Time `json:"otpExpiry"`
ID string `json:"id"`
}
func (q *Queries) UpdateUserResetToken(ctx context.Context, arg UpdateUserResetTokenParams) error {
_, err := q.exec(ctx, q.updateUserResetTokenStmt, updateUserResetToken, arg.Otp, arg.OtpExpiry, arg.ID)
return err
}