INNER CODE UNIT · TypeScript
handleQuestions
harvard-edge/cs249r_book · interviews/staffml-vault-worker/src/index.ts:290
async function handleQuestions(env: Env, req: Request, url: URL): Promise<Response> {
const origin = req.headers.get("Origin");
const params = url.searchParams;
const expectedFilterHash = await filterHash(params);
const cursor = decodeCursor(params.get("cursor"));
if (cursor && cursor.filter_hash !== expectedFilterHash) {
return json(
{ error: "cursor-filter-mismatch", detail: "cursor was minted under different filter params" },
{ status: 400, headers: corsHeaders(env, origin) },
);
}
const limit = Math.min(Number.parseInt(params.get("limit") ?? "50", 10), 200);
const where: string[] = [];
const binds: unknown[] = [];
for (const key of ["track", "level", "zone", "topic", "status"] as const) {
const v = params.get(key);
if (v) {