[server] Add disk usage endpoint

This commit is contained in:
Abhishek Shroff
2024-10-08 20:02:28 +05:30
parent 9b35166b19
commit 1bf193d543
4 changed files with 105 additions and 0 deletions
+15
View File
@@ -44,6 +44,21 @@ SET
WHERE id = @id::uuid
RETURNING *;
-- name: DiskUsage :one
WITH RECURSIVE nodes(id, parent, size, dir) AS (
SELECT r.id, r.parent, r.size, r.dir
FROM resources r WHERE r.id = @id::uuid
UNION ALL
SELECT r.id, r.parent, r.size, r.dir
FROM resources r JOIN nodes n on r.parent = n.id
WHERE deleted IS NULL
)
SELECT
SUM(size) AS size,
COUNT(*) AS entities,
COUNT(CASE dir WHEN true THEN 1 ELSE NULL END) AS dirs,
COUNT(CASE dir WHEN false THEN 1 ELSE NULL END) AS files
FROM nodes;
-- name: DeleteRecursive :many