INNER CODE UNIT · TypeScript
handleTaxonomy
harvard-edge/cs249r_book · interviews/staffml-vault-worker/src/index.ts:466
async function handleTaxonomy(env: Env, req: Request): Promise<Response> {
const origin = req.headers.get("Origin");
const topics = await env.DB
.prepare("SELECT id, name, description, area, prerequisites_json, tracks_json, question_count FROM taxonomy ORDER BY area, id")
.all<{
id: string; name: string; description: string | null;
area: string; prerequisites_json: string | null;
tracks_json: string | null; question_count: number;
}>();
const zones = await env.DB
.prepare("SELECT id, description, skills_json, levels_json FROM zones ORDER BY id")
.all<{ id: string; description: string | null; skills_json: string | null; levels_json: string | null }>();
// Group topics by area for the response.
const areas: Record<string, unknown[]> = {};
for (const t of topics.results ?? []) {
if (!areas[t.area]) areas[t.area] = [];
areas[t.area].push({