import { z } from "zod" import { serverSupabaseClient } from "#supabase/server" import { calendarMonthSchema, type CalendarMonth } from "~/models/CalendarMonth" const paramsSchema = z.object({ id: z.number({ coerce: true }).positive().int() }) export default defineEventHandler(async (event) => { const client = await serverSupabaseClient(event) const { data: params, error: paramsError} = await getValidatedRouterParams(event, paramsSchema.safeParse) const { data: bodyData, error: bodyError } = await readValidatedBody(event, body => calendarMonthSchema.safeParse(body)) if (paramsError) { throw createError({ cause: "Utilisateur", fatal: false, message: "L'identifiant du mois est manquant ou mal renseigné.", status: 401, }) } if (bodyError) { throw createError({ cause: "Utilisateur", fatal: false, message: "Le schéma de la requête n'est pas complet ou mal renseigné.", status: 401, }) } try { const { data, error } = await client .from("calendar_months") .update( { name: bodyData?.name, days: bodyData.days, position: bodyData?.position, calendar_id: bodyData.calendar_id, } as never ) .eq("id", params.id) .select(` id, name, days, position, calendar_id `) .single() if (error) throw error return data } catch (err) { console.log(err) throw createError({ cause: "Serveur", status: 500, fatal: false, message: "Une erreur inconnue est survenue." }) } })