From aec6860cbd17d9114fdad574244daab467bef86c Mon Sep 17 00:00:00 2001 From: Marco Pedone Date: Tue, 31 Mar 2026 09:24:22 +0200 Subject: [PATCH] feat: add isAdmin parameter to interruzioneServizio and update related components --- .../src/components/servizio/interruzione.tsx | 17 ++++++++++++++--- .../src/server/api/routers/servizio.ts | 3 ++- .../server/controllers/servizio.controller.ts | 9 ++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/apps/infoalloggi/src/components/servizio/interruzione.tsx b/apps/infoalloggi/src/components/servizio/interruzione.tsx index 2253a21..5a327e3 100644 --- a/apps/infoalloggi/src/components/servizio/interruzione.tsx +++ b/apps/infoalloggi/src/components/servizio/interruzione.tsx @@ -135,7 +135,7 @@ export const DisclaimerInterruzioneServizio = () => { { - interrompiServizio({ servizioId }); + interrompiServizio({ servizioId, isAdmin: false }); }} title={t.servizio.interruzione.title} > @@ -177,7 +177,16 @@ export const InterruzioneServizio = () => { toast.success("Interruzione richiesta"); }, }); - if (!servizio.decorrenza) return null; + if (!servizio.decorrenza) + return ( + + ); const fineInterruzione = add(servizio.decorrenza, { days: servizio.interruzioneDays, }); @@ -238,7 +247,9 @@ export const InterruzioneServizio = () => { {t.annulla} mutate({ servizioId: servizio.servizio_id })} + onClick={() => + mutate({ servizioId: servizio.servizio_id, isAdmin }) + } > {t.conferma} diff --git a/apps/infoalloggi/src/server/api/routers/servizio.ts b/apps/infoalloggi/src/server/api/routers/servizio.ts index e1e7e6b..ff389eb 100644 --- a/apps/infoalloggi/src/server/api/routers/servizio.ts +++ b/apps/infoalloggi/src/server/api/routers/servizio.ts @@ -244,10 +244,11 @@ export const servizioRouter = createTRPCRouter({ .input( z.object({ servizioId: zServizioId, + isAdmin: z.boolean(), }), ) .mutation(async ({ input }) => { - return await interruzioneServizio(input.servizioId); + return await interruzioneServizio(input.servizioId, input.isAdmin); }), processServizioOnboard: protectedProcedure diff --git a/apps/infoalloggi/src/server/controllers/servizio.controller.ts b/apps/infoalloggi/src/server/controllers/servizio.controller.ts index 34646a1..62730e9 100644 --- a/apps/infoalloggi/src/server/controllers/servizio.controller.ts +++ b/apps/infoalloggi/src/server/controllers/servizio.controller.ts @@ -889,7 +889,10 @@ export const SbloccaContatti = async ({ } }; -export const interruzioneServizio = async (servizioId: ServizioServizioId) => { +export const interruzioneServizio = async ( + servizioId: ServizioServizioId, + isAdmin: boolean, +) => { try { const servizio = await getServizioById(servizioId); @@ -918,8 +921,8 @@ export const interruzioneServizio = async (servizioId: ServizioServizioId) => { days: servizio.interruzioneDays, }), ); - - if (!isWithinRipensamento) { + //se non รจ admin deve essere entro il periodo di ripensamento per poter interrompere il servizio + if (!isWithinRipensamento && !isAdmin) { throw new TRPCError({ code: "BAD_REQUEST", message: "Periodo di ripensamento scaduto",