// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.26.0 // source: user.sql package db import ( "context" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" ) const createUser = `-- name: CreateUser :one INSERT INTO users( username, display_name, password_hash, root, home ) VALUES ( $1, $2, $3, $4, $5 ) RETURNING username, created, modified, deleted, display_name, password_hash, root, home ` type CreateUserParams struct { Username string DisplayName string PasswordHash string Root uuid.UUID Home uuid.UUID } func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error) { row := q.db.QueryRow(ctx, createUser, arg.Username, arg.DisplayName, arg.PasswordHash, arg.Root, arg.Home, ) var i User err := row.Scan( &i.Username, &i.Created, &i.Modified, &i.Deleted, &i.DisplayName, &i.PasswordHash, &i.Root, &i.Home, ) return i, err } const listUsers = `-- name: ListUsers :many SELECT username, display_name, root, home FROM users WHERE modified > $1::TIMESTAMP ` type ListUsersRow struct { Username string DisplayName string Root uuid.UUID Home uuid.UUID } func (q *Queries) ListUsers(ctx context.Context, since pgtype.Timestamp) ([]ListUsersRow, error) { rows, err := q.db.Query(ctx, listUsers, since) if err != nil { return nil, err } defer rows.Close() var items []ListUsersRow for rows.Next() { var i ListUsersRow if err := rows.Scan( &i.Username, &i.DisplayName, &i.Root, &i.Home, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const sharedResources = `-- name: SharedResources :many SELECT r.id, r.name, r.parent, r.dir, r.created, r.modified, r.deleted, r.content_size, r.content_type, r.content_sha256 FROM permissions p JOIN resources r ON p.resource_id = r.id WHERE p.username = $1::text AND p.resource_id <> $2::uuid AND p.value <> 0 AND r.deleted IS NULL ORDER BY p.modified DESC ` type SharedResourcesParams struct { Username string UserHome uuid.UUID } func (q *Queries) SharedResources(ctx context.Context, arg SharedResourcesParams) ([]Resource, error) { rows, err := q.db.Query(ctx, sharedResources, arg.Username, arg.UserHome) if err != nil { return nil, err } defer rows.Close() var items []Resource for rows.Next() { var i Resource if err := rows.Scan( &i.ID, &i.Name, &i.Parent, &i.Dir, &i.Created, &i.Modified, &i.Deleted, &i.ContentSize, &i.ContentType, &i.ContentSha256, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const updateUserDisplayName = `-- name: UpdateUserDisplayName :exec UPDATE users SET display_name = $1, modified = NOW() WHERE username = $2 ` type UpdateUserDisplayNameParams struct { DisplayName string Username string } func (q *Queries) UpdateUserDisplayName(ctx context.Context, arg UpdateUserDisplayNameParams) error { _, err := q.db.Exec(ctx, updateUserDisplayName, arg.DisplayName, arg.Username) return err } const updateUserHome = `-- name: UpdateUserHome :exec UPDATE users SET home = $1, modified = NOW() WHERE username = $2 ` type UpdateUserHomeParams struct { Home uuid.UUID Username string } func (q *Queries) UpdateUserHome(ctx context.Context, arg UpdateUserHomeParams) error { _, err := q.db.Exec(ctx, updateUserHome, arg.Home, arg.Username) return err } const updateUserPasswordHash = `-- name: UpdateUserPasswordHash :exec UPDATE users SET password_hash = $1, modified = NOW() WHERE username = $2 ` type UpdateUserPasswordHashParams struct { PasswordHash string Username string } func (q *Queries) UpdateUserPasswordHash(ctx context.Context, arg UpdateUserPasswordHashParams) error { _, err := q.db.Exec(ctx, updateUserPasswordHash, arg.PasswordHash, arg.Username) return err } const updateUserRoot = `-- name: UpdateUserRoot :exec UPDATE users SET root = $1, modified = NOW() WHERE username = $2 ` type UpdateUserRootParams struct { Root uuid.UUID Username string } func (q *Queries) UpdateUserRoot(ctx context.Context, arg UpdateUserRootParams) error { _, err := q.db.Exec(ctx, updateUserRoot, arg.Root, arg.Username) return err } const userByUsername = `-- name: UserByUsername :one SELECT username, display_name, password_hash, root, home FROM users WHERE username = $1 ` type UserByUsernameRow struct { Username string DisplayName string PasswordHash string Root uuid.UUID Home uuid.UUID } func (q *Queries) UserByUsername(ctx context.Context, username string) (UserByUsernameRow, error) { row := q.db.QueryRow(ctx, userByUsername, username) var i UserByUsernameRow err := row.Scan( &i.Username, &i.DisplayName, &i.PasswordHash, &i.Root, &i.Home, ) return i, err }