28 lines
796 B
TypeScript
28 lines
796 B
TypeScript
import {
|
||
getActiveStreak,
|
||
resetStreak,
|
||
updateStreakSavings,
|
||
} from "../../db/streak";
|
||
|
||
/** PATCH /api/streak – reset oder avg_monthly_savings aktualisieren */
|
||
export default defineEventHandler(async (event) => {
|
||
const user = await requireUser(event);
|
||
const body = await readBody(event);
|
||
|
||
const current = await getActiveStreak(user.id);
|
||
if (!current)
|
||
throw createError({ statusCode: 404, message: "Kein aktiver Streak" });
|
||
|
||
if (body.reset === true) {
|
||
const longest = Math.max(current.longestDays, current.currentDays);
|
||
const reason = body.reason ?? "manual";
|
||
return resetStreak(current.id, longest, user.id, reason);
|
||
}
|
||
|
||
if (body.avgMonthlySavings !== undefined) {
|
||
return updateStreakSavings(current.id, body.avgMonthlySavings);
|
||
}
|
||
|
||
return current;
|
||
});
|