2026-03-27 01:39:15 -07:00
|
|
|
import { defineQuery } from "@rocicorp/zero";
|
|
|
|
|
import { z } from "zod";
|
|
|
|
|
import { zql } from "../schema/index";
|
2026-06-23 13:01:21 +05:30
|
|
|
import { canReadSpace, constrainToAllowedSpaces, denySpace } from "./authz";
|
2026-03-27 01:39:15 -07:00
|
|
|
|
|
|
|
|
export const folderQueries = {
|
2026-07-06 15:12:40 +05:30
|
|
|
bySpace: defineQuery(z.object({ workspaceId: z.number() }), ({ args: { workspaceId }, ctx }) => {
|
|
|
|
|
const query = zql.folders.where("workspaceId", workspaceId);
|
|
|
|
|
if (!canReadSpace(ctx, workspaceId)) return denySpace(query).orderBy("position", "asc");
|
|
|
|
|
return constrainToAllowedSpaces(query, ctx).orderBy("position", "asc");
|
|
|
|
|
}),
|
2026-03-27 01:39:15 -07:00
|
|
|
};
|