SurfSense/surfsense_web/zero/queries/folders.ts
2026-06-25 04:31:22 +05:30

15 lines
575 B
TypeScript

import { defineQuery } from "@rocicorp/zero";
import { z } from "zod";
import { zql } from "../schema/index";
import { canReadSpace, constrainToAllowedSpaces, denySpace } from "./authz";
export const folderQueries = {
bySpace: defineQuery(
z.object({ searchSpaceId: z.number() }),
({ args: { searchSpaceId }, ctx }) => {
const query = zql.folders.where("searchSpaceId", searchSpaceId);
if (!canReadSpace(ctx, searchSpaceId)) return denySpace(query).orderBy("position", "asc");
return constrainToAllowedSpaces(query, ctx).orderBy("position", "asc");
}
),
};