43 lines
974 B
TypeScript

import { createUrgeLog } from "../../db/urge";
import { addStreakEvent } from "../../db/streak";
type Emotion = "stress" | "sadness" | "anger" | "empty" | "boredom" | "other";
const VALID_EMOTIONS: Emotion[] = [
"stress",
"sadness",
"anger",
"empty",
"boredom",
"other",
];
/** POST /api/urge */
export default defineEventHandler(async (event) => {
const user = await requireUser(event);
const body = await readBody(event);
const { emotion, wasOvercome, breathingDone } = body ?? {};
if (!VALID_EMOTIONS.includes(emotion)) {
throw createError({ statusCode: 400, message: "Ungültige Emotion" });
}
const log = await createUrgeLog(
user.id,
emotion,
!!wasOvercome,
!!breathingDone,
);
// StreakEvent loggen
if (wasOvercome) {
await addStreakEvent(user.id, "milestone", {
type: "urge_overcome",
emotion,
});
} else {
await addStreakEvent(user.id, "relapse", { emotion });
}
return log;
});