- Dockerfile + deploy.sh for Hetzner server - Email verification via Better Auth + Resend - Invite code flow (6-digit OTP, generate/join) - Settlement share percent fix (payer vs debtor) - OCR scanner fixes (date display, retry, viewfinder) - app.json icon/splash/adaptive-icon configured - iOS deployment target 15.5 (ML Kit requirement) - DB migration 0014: household_invitations table Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
import { zValidator } from "@hono/zod-validator";
|
|
import { Hono } from "hono";
|
|
import { authMiddleware, requireAuth, type AuthVariables } from "../middleware/auth.middleware";
|
|
import { tenantMiddleware, requireHousehold, type TenantVariables } from "../middleware/tenant.middleware";
|
|
import { UpdateHouseholdSettingsSchema } from "@haushaltsApp/shared/schemas/household-settings.schema";
|
|
import {
|
|
getOrCreateHouseholdSettings,
|
|
updateHouseholdSettings,
|
|
} from "../services/household-settings.service";
|
|
|
|
type Variables = AuthVariables & TenantVariables;
|
|
|
|
export const householdSettingsRoutes = new Hono<{ Variables: Variables }>();
|
|
householdSettingsRoutes.use("/*", authMiddleware, requireAuth, tenantMiddleware, requireHousehold);
|
|
|
|
householdSettingsRoutes.get("/", async (c) => {
|
|
const householdId = c.get("householdId") as string;
|
|
const settings = await getOrCreateHouseholdSettings(householdId);
|
|
return c.json({ settings });
|
|
});
|
|
|
|
householdSettingsRoutes.patch("/", zValidator("json", UpdateHouseholdSettingsSchema), async (c) => {
|
|
const householdId = c.get("householdId") as string;
|
|
const input = c.req.valid("json");
|
|
const settings = await updateHouseholdSettings(householdId, input);
|
|
return c.json({ settings });
|
|
});
|