mirror of
https://github.com/coder/coder.git
synced 2026-06-03 21:18:24 +00:00
9f229370e7
Relates to https://github.com/coder/internal/issues/981 Adds a `ListTasks` query that allows filtering by OwnerID and OrganizationID.
31 lines
1.1 KiB
SQL
31 lines
1.1 KiB
SQL
-- name: InsertTask :one
|
|
INSERT INTO tasks
|
|
(id, organization_id, owner_id, name, workspace_id, template_version_id, template_parameters, prompt, created_at)
|
|
VALUES
|
|
(gen_random_uuid(), $1, $2, $3, $4, $5, $6, $7, $8)
|
|
RETURNING *;
|
|
|
|
-- name: UpsertTaskWorkspaceApp :one
|
|
INSERT INTO task_workspace_apps
|
|
(task_id, workspace_build_number, workspace_agent_id, workspace_app_id)
|
|
VALUES
|
|
($1, $2, $3, $4)
|
|
ON CONFLICT (task_id, workspace_build_number)
|
|
DO UPDATE SET
|
|
workspace_agent_id = EXCLUDED.workspace_agent_id,
|
|
workspace_app_id = EXCLUDED.workspace_app_id
|
|
RETURNING *;
|
|
|
|
-- name: GetTaskByID :one
|
|
SELECT * FROM tasks_with_status WHERE id = @id::uuid;
|
|
|
|
-- name: GetTaskByWorkspaceID :one
|
|
SELECT * FROM tasks_with_status WHERE workspace_id = @workspace_id::uuid;
|
|
|
|
-- name: ListTasks :many
|
|
SELECT * FROM tasks_with_status tws
|
|
WHERE tws.deleted_at IS NULL
|
|
AND CASE WHEN @owner_id::UUID != '00000000-0000-0000-0000-000000000000' THEN tws.owner_id = @owner_id::UUID ELSE TRUE END
|
|
AND CASE WHEN @organization_id::UUID != '00000000-0000-0000-0000-000000000000' THEN tws.organization_id = @organization_id::UUID ELSE TRUE END
|
|
ORDER BY tws.created_at DESC;
|