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

26 lines
995 B
TypeScript

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