INNER CODE UNIT · TypeScript
handleQuestionById
harvard-edge/cs249r_book · interviews/staffml-vault-worker/src/index.ts:253
async function handleQuestionById(env: Env, req: Request, id: string): Promise<Response> {
const origin = req.headers.get("Origin");
const row = await env.DB
.prepare("SELECT * FROM questions WHERE id = ?")
.bind(id)
.first<QuestionRow>();
if (!row) {
return json({ error: "not-found", id }, { status: 404, headers: corsHeaders(env, origin) });
}
const manifest = await getManifest(env);
const etag = `"${manifest.release_id}:q:${row.content_hash}"`;
if (req.headers.get("If-None-Match") === etag) {
return new Response(null, {
status: 304,
headers: { ETag: etag, ...corsHeaders(env, origin) },
});
}
return json(row, {