From d21135e07694ab974518a322df4ac883dc79cfce Mon Sep 17 00:00:00 2001 From: Rama Krishna Reddy <49095575+rkreddy99@users.noreply.github.com> Date: Mon, 31 Jul 2023 19:18:50 +0530 Subject: [PATCH] fix: do not delete last schedule (#10444) Co-authored-by: rkreddy99 --- .../routers/viewer/availability/schedule/delete.handler.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/trpc/server/routers/viewer/availability/schedule/delete.handler.ts b/packages/trpc/server/routers/viewer/availability/schedule/delete.handler.ts index d77aeecb1f..1d1c13784a 100644 --- a/packages/trpc/server/routers/viewer/availability/schedule/delete.handler.ts +++ b/packages/trpc/server/routers/viewer/availability/schedule/delete.handler.ts @@ -26,6 +26,8 @@ export const deleteHandler = async ({ input, ctx }: DeleteOptions) => { if (scheduleToDelete?.userId !== user.id) throw new TRPCError({ code: "UNAUTHORIZED" }); + // cannot remove this schedule if this is the last schedule remaining + // if this is the last remaining schedule of the user then this would be the default schedule and so cannot remove it if (user.defaultScheduleId === input.scheduleId) { // set a new default or unset default if no other schedule const scheduleToSetAsDefault = await prisma.schedule.findFirst({ @@ -40,6 +42,9 @@ export const deleteHandler = async ({ input, ctx }: DeleteOptions) => { }, }); + // to throw the error if there arent any other schedules + if (!scheduleToSetAsDefault) throw new TRPCError({ code: "BAD_REQUEST" }); + await prisma.user.update({ where: { id: user.id,