integratedhub/routes/api/quiz-up.ts
2026-01-20 09:02:26 -06:00

28 lines
968 B
TypeScript

// quiz-up.ts
import { define } from "../../utils.ts";
import { upsertKvQuizAny } from "../../utils/QuizDataClient.ts";
import { KvObj, QuizConfig } from "../../utils/types.ts";
import { normalizeQuizMedia } from "../../utils/normalizeQuestionMedia.ts";
export const handler = define.handlers({
async POST(ctx) {
const req = ctx.req;
try {
const data = await req.text(); // Read the request body as text
const quizData: KvObj<QuizConfig> = JSON.parse(data) as KvObj<QuizConfig>; // Parse as JSON
// Normalize media URLs before saving (awaited properly)
// if (quizData.value?.questions) {
// await normalizeQuizMedia(quizData.value.questions);
// }
const response = await upsertKvQuizAny(quizData);
return new Response(JSON.stringify(response), { status: 201 }); // Created
} catch (err) {
console.error(err);
return new Response("Failed to create quiz", { status: 500 });
}
},
});