diff --git a/models/CalendarEvent.ts b/models/CalendarEvent.ts index f49328a..ca8da54 100644 --- a/models/CalendarEvent.ts +++ b/models/CalendarEvent.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { Category } from './Category' +import { categorySchema, type Category } from './Category' import { dateSchema, type RPGDate } from './Date' export interface CalendarEvent { @@ -26,9 +26,7 @@ export const postEventBodySchema = z.object({ startDate: dateSchema.required(), endDate: dateSchema.optional().nullable(), hidden: z.boolean().optional().nullable(), - category: z.object({ - id: z.number().int() - }), + category: categorySchema.optional().nullable(), }), calendarId: z.number({ coerce: true }).int().positive() }) diff --git a/models/Category.ts b/models/Category.ts index f86e0c3..33ddcc4 100644 --- a/models/Category.ts +++ b/models/Category.ts @@ -1,4 +1,11 @@ +import { z } from 'zod' + export interface Category { id: number name: string } + +export const categorySchema = z.object({ + id: z.number().int(), + name: z.string() +}) diff --git a/server/api/calendars/events/[id].patch.ts b/server/api/calendars/events/[id].patch.ts index 7ae2573..adfb7fa 100644 --- a/server/api/calendars/events/[id].patch.ts +++ b/server/api/calendars/events/[id].patch.ts @@ -41,7 +41,7 @@ export default defineEventHandler(async (event) => { description: bodyData.event.description, location: bodyData.event.location, hidden: bodyData.event.hidden, - category: bodyData.event.category.id, + category: bodyData.event.category?.id, calendar_id: bodyData?.calendarId } as never ) diff --git a/server/api/calendars/events/create.post.ts b/server/api/calendars/events/create.post.ts index 4fb9caf..1d311a0 100644 --- a/server/api/calendars/events/create.post.ts +++ b/server/api/calendars/events/create.post.ts @@ -26,7 +26,7 @@ export default defineEventHandler(async (event) => { description: bodyData.event.description, location: bodyData.event.location, hidden: bodyData.event.hidden, - category: bodyData.event.category.id, + category: bodyData.event.category?.id, calendar_id: bodyData?.calendarId } as never )