INNER CODE UNIT · TypeScript
handleChain
harvard-edge/cs249r_book · interviews/staffml-vault-worker/src/index.ts:436
async function handleChain(env: Env, req: Request, chainId: string): Promise<Response> {
const origin = req.headers.get("Origin");
const chain = await env.DB
.prepare("SELECT id, name, topic FROM chains WHERE id = ?")
.bind(chainId)
.first<{ id: string; name: string | null; topic: string | null }>();
if (!chain) {
return json({ error: "not-found", chain_id: chainId }, { status: 404, headers: corsHeaders(env, origin) });
}
const questions = await env.DB
.prepare(
`SELECT cq.position, q.id, q.title, q.topic, q.track, q.level, q.zone
FROM chain_questions cq
JOIN questions q ON q.id = cq.question_id
WHERE cq.chain_id = ?
ORDER BY cq.position`,
)
.bind(chainId)