533 lines
13 KiB
Go
533 lines
13 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: resources.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/lib/pq"
|
|
)
|
|
|
|
const countResourcesByOwner = `-- name: CountResourcesByOwner :one
|
|
SELECT COUNT(*) FROM resources
|
|
WHERE owner_id = $1 AND parent_resource_id IS NULL
|
|
`
|
|
|
|
func (q *Queries) CountResourcesByOwner(ctx context.Context, ownerID uuid.UUID) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countResourcesByOwner, ownerID)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const countResourcesByParentAndOwner = `-- name: CountResourcesByParentAndOwner :one
|
|
SELECT COUNT(*) FROM resources
|
|
WHERE parent_resource_id = $1 AND owner_id = $2
|
|
`
|
|
|
|
type CountResourcesByParentAndOwnerParams struct {
|
|
ParentResourceID uuid.NullUUID `json:"parent_resource_id"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
}
|
|
|
|
func (q *Queries) CountResourcesByParentAndOwner(ctx context.Context, arg CountResourcesByParentAndOwnerParams) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countResourcesByParentAndOwner, arg.ParentResourceID, arg.OwnerID)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const createFolder = `-- name: CreateFolder :one
|
|
INSERT INTO resources (name, is_folder, owner_id, parent_resource_id, created_at, updated_at)
|
|
VALUES ($1, true, $2, $3, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
RETURNING id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at
|
|
`
|
|
|
|
type CreateFolderParams struct {
|
|
Name string `json:"name"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
ParentResourceID uuid.NullUUID `json:"parent_resource_id"`
|
|
}
|
|
|
|
func (q *Queries) CreateFolder(ctx context.Context, arg CreateFolderParams) (Resource, error) {
|
|
row := q.db.QueryRowContext(ctx, createFolder, arg.Name, arg.OwnerID, arg.ParentResourceID)
|
|
var i Resource
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const createResource = `-- name: CreateResource :one
|
|
INSERT INTO resources (name, mime_type, size, checksum, owner_id, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, $5, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
RETURNING id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at
|
|
`
|
|
|
|
type CreateResourceParams struct {
|
|
Name string `json:"name"`
|
|
MimeType string `json:"mime_type"`
|
|
Size int64 `json:"size"`
|
|
Checksum string `json:"checksum"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
}
|
|
|
|
func (q *Queries) CreateResource(ctx context.Context, arg CreateResourceParams) (Resource, error) {
|
|
row := q.db.QueryRowContext(ctx, createResource,
|
|
arg.Name,
|
|
arg.MimeType,
|
|
arg.Size,
|
|
arg.Checksum,
|
|
arg.OwnerID,
|
|
)
|
|
var i Resource
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const deleteResource = `-- name: DeleteResource :exec
|
|
DELETE FROM resources
|
|
WHERE id = $1
|
|
`
|
|
|
|
func (q *Queries) DeleteResource(ctx context.Context, id uuid.UUID) error {
|
|
_, err := q.db.ExecContext(ctx, deleteResource, id)
|
|
return err
|
|
}
|
|
|
|
const findDuplicateByChecksum = `-- name: FindDuplicateByChecksum :one
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE checksum = $1 AND is_folder = false AND owner_id = $2
|
|
LIMIT 1
|
|
`
|
|
|
|
type FindDuplicateByChecksumParams struct {
|
|
Checksum string `json:"checksum"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
}
|
|
|
|
func (q *Queries) FindDuplicateByChecksum(ctx context.Context, arg FindDuplicateByChecksumParams) (Resource, error) {
|
|
row := q.db.QueryRowContext(ctx, findDuplicateByChecksum, arg.Checksum, arg.OwnerID)
|
|
var i Resource
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const findDuplicatesByNameSize = `-- name: FindDuplicatesByNameSize :many
|
|
SELECT id, name, mime_type, size, checksum, created_at FROM resources
|
|
WHERE name = $1 AND size = $2 AND is_folder = false
|
|
ORDER BY created_at DESC
|
|
`
|
|
|
|
type FindDuplicatesByNameSizeParams struct {
|
|
Name string `json:"name"`
|
|
Size int64 `json:"size"`
|
|
}
|
|
|
|
type FindDuplicatesByNameSizeRow struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
MimeType string `json:"mime_type"`
|
|
Size int64 `json:"size"`
|
|
Checksum string `json:"checksum"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
func (q *Queries) FindDuplicatesByNameSize(ctx context.Context, arg FindDuplicatesByNameSizeParams) ([]FindDuplicatesByNameSizeRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, findDuplicatesByNameSize, arg.Name, arg.Size)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []FindDuplicatesByNameSizeRow
|
|
for rows.Next() {
|
|
var i FindDuplicatesByNameSizeRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.CreatedAt,
|
|
); 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 getResource = `-- name: GetResource :one
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE id = $1 LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetResource(ctx context.Context, id uuid.UUID) (Resource, error) {
|
|
row := q.db.QueryRowContext(ctx, getResource, id)
|
|
var i Resource
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const listFolders = `-- name: ListFolders :many
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE is_folder = true
|
|
ORDER BY created_at DESC
|
|
`
|
|
|
|
func (q *Queries) ListFolders(ctx context.Context) ([]Resource, error) {
|
|
rows, err := q.db.QueryContext(ctx, listFolders)
|
|
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.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&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 listResources = `-- name: ListResources :many
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE parent_resource_id IS NULL
|
|
ORDER BY is_folder DESC, created_at DESC
|
|
`
|
|
|
|
func (q *Queries) ListResources(ctx context.Context) ([]Resource, error) {
|
|
rows, err := q.db.QueryContext(ctx, listResources)
|
|
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.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&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 listResourcesByID = `-- name: ListResourcesByID :many
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE id = ANY($1::uuid[])
|
|
ORDER BY created_at DESC
|
|
`
|
|
|
|
func (q *Queries) ListResourcesByID(ctx context.Context, dollar_1 []uuid.UUID) ([]Resource, error) {
|
|
rows, err := q.db.QueryContext(ctx, listResourcesByID, pq.Array(dollar_1))
|
|
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.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&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 listResourcesByOwner = `-- name: ListResourcesByOwner :many
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE owner_id = $1 AND parent_resource_id IS NULL
|
|
ORDER BY created_at DESC
|
|
LIMIT $2 OFFSET $3
|
|
`
|
|
|
|
type ListResourcesByOwnerParams struct {
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
Limit int32 `json:"limit"`
|
|
Offset int32 `json:"offset"`
|
|
}
|
|
|
|
func (q *Queries) ListResourcesByOwner(ctx context.Context, arg ListResourcesByOwnerParams) ([]Resource, error) {
|
|
rows, err := q.db.QueryContext(ctx, listResourcesByOwner, arg.OwnerID, arg.Limit, arg.Offset)
|
|
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.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&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 listResourcesByParentAndOwner = `-- name: ListResourcesByParentAndOwner :many
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE parent_resource_id = $1 AND owner_id = $2
|
|
ORDER BY is_folder DESC, created_at DESC
|
|
LIMIT $3 OFFSET $4
|
|
`
|
|
|
|
type ListResourcesByParentAndOwnerParams struct {
|
|
ParentResourceID uuid.NullUUID `json:"parent_resource_id"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
Limit int32 `json:"limit"`
|
|
Offset int32 `json:"offset"`
|
|
}
|
|
|
|
func (q *Queries) ListResourcesByParentAndOwner(ctx context.Context, arg ListResourcesByParentAndOwnerParams) ([]Resource, error) {
|
|
rows, err := q.db.QueryContext(ctx, listResourcesByParentAndOwner,
|
|
arg.ParentResourceID,
|
|
arg.OwnerID,
|
|
arg.Limit,
|
|
arg.Offset,
|
|
)
|
|
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.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&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 listResourcesByParentID = `-- name: ListResourcesByParentID :many
|
|
SELECT id, name, mime_type, size, checksum, ocr_text, is_folder, parent_resource_id, owner_id, created_at, updated_at FROM resources
|
|
WHERE parent_resource_id = $1
|
|
ORDER BY is_folder DESC, created_at DESC
|
|
`
|
|
|
|
func (q *Queries) ListResourcesByParentID(ctx context.Context, parentResourceID uuid.NullUUID) ([]Resource, error) {
|
|
rows, err := q.db.QueryContext(ctx, listResourcesByParentID, parentResourceID)
|
|
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.MimeType,
|
|
&i.Size,
|
|
&i.Checksum,
|
|
&i.OcrText,
|
|
&i.IsFolder,
|
|
&i.ParentResourceID,
|
|
&i.OwnerID,
|
|
&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 moveResources = `-- name: MoveResources :exec
|
|
UPDATE resources
|
|
SET parent_resource_id = $1, updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = ANY($2::uuid[])
|
|
`
|
|
|
|
type MoveResourcesParams struct {
|
|
ParentResourceID uuid.NullUUID `json:"parent_resource_id"`
|
|
Column2 []uuid.UUID `json:"column_2"`
|
|
}
|
|
|
|
func (q *Queries) MoveResources(ctx context.Context, arg MoveResourcesParams) error {
|
|
_, err := q.db.ExecContext(ctx, moveResources, arg.ParentResourceID, pq.Array(arg.Column2))
|
|
return err
|
|
}
|
|
|
|
const updateResource = `-- name: UpdateResource :exec
|
|
UPDATE resources
|
|
SET name = $1, mime_type = $2, ocr_text = $3, updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = $4
|
|
`
|
|
|
|
type UpdateResourceParams struct {
|
|
Name string `json:"name"`
|
|
MimeType string `json:"mime_type"`
|
|
OcrText string `json:"ocr_text"`
|
|
ID uuid.UUID `json:"id"`
|
|
}
|
|
|
|
func (q *Queries) UpdateResource(ctx context.Context, arg UpdateResourceParams) error {
|
|
_, err := q.db.ExecContext(ctx, updateResource,
|
|
arg.Name,
|
|
arg.MimeType,
|
|
arg.OcrText,
|
|
arg.ID,
|
|
)
|
|
return err
|
|
}
|