From 49876339bfd387c2b676174f28482ea2eeca0314 Mon Sep 17 00:00:00 2001 From: Anys Date: Thu, 23 Apr 2026 10:52:50 +0200 Subject: [PATCH] feat(api): implement ajustement update endpoint - PUT /ajustements/{numEtud}/{idUE}: update ajustement valeur - Requires employee role --- .../notes/api/ajustements/[numEtud]/[idUE].ts | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/routes/(apps)/notes/api/ajustements/[numEtud]/[idUE].ts b/routes/(apps)/notes/api/ajustements/[numEtud]/[idUE].ts index ae7232c..ed21ac4 100644 --- a/routes/(apps)/notes/api/ajustements/[numEtud]/[idUE].ts +++ b/routes/(apps)/notes/api/ajustements/[numEtud]/[idUE].ts @@ -40,4 +40,42 @@ export const handler: Handlers = { headers: { "content-type": "application/json" }, }); }, + + // #51 PUT /ajustements/{numEtud}/{idUE} + async PUT( + request: Request, + context: FreshContext, + ): Promise { + if (context.state.session.eduPersonPrimaryAffiliation !== "employee") { + return FORBIDDEN; + } + + const numEtud = Number(context.params.numEtud); + const idUE = Number(context.params.idUE); + + if (isNaN(numEtud) || isNaN(idUE)) { + return new Response("Paramètres invalides", { status: 400 }); + } + + const body: { valeur: number } = await request.json(); + + if (body.valeur === undefined) { + return new Response(JSON.stringify({ error: "Champ requis: valeur" }), { + status: 400, + headers: { "content-type": "application/json" }, + }); + } + + const [updated] = await db + .update(ajustements) + .set({ valeur: body.valeur }) + .where(eq(ajustements.numEtud, numEtud), eq(ajustements.idUE, idUE)) + .returning(); + + if (!updated) return NOT_FOUND; + + return new Response(JSON.stringify(updated), { + headers: { "content-type": "application/json" }, + }); + }, };