Files
ghostwriter/server/api/preferences.put.ts

36 lines
849 B
TypeScript

import * as z from "zod";
import {
availableLanguages,
availableTones,
availableUnits,
} from "~/shared/constants";
//
const bodySchema = z.strictObject({
enabled: z.boolean(),
language: z.enum(availableLanguages),
units: z.enum(availableUnits),
tone: z.array(z.enum(availableTones)),
});
export default defineEventHandler(async (event) => {
const session = await requireUserSession(event);
const body = await readValidatedBody(event, (body) => bodySchema.parse(body));
const db = useDrizzle();
const [preferences] = await db
.update(tables.preferences)
.set({
data: {
enabled: body.enabled,
language: body.language,
units: body.units,
tone: body.tone,
},
})
.where(eq(tables.preferences.userId, session.user.id))
.returning();
return preferences.data;
});