From 2b92f3bf5f15326bac1ac78e12f9f72bf853bcdb Mon Sep 17 00:00:00 2001 From: Ly Tuan Kiet Date: Tue, 3 Dec 2024 16:18:26 +0700 Subject: [PATCH] feat: add validation to prevent center owners and mentors from being invited to their own centers - Implemented checks in CenterMentorSchema to block center owners from being invited as mentors. - Added validation to prevent mentors from being invited to their own centers or centers they already mentor. - Enhanced error handling to provide clear feedback when invitation conditions are not met. --- src/CenterMentor/centermentor.schema.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/CenterMentor/centermentor.schema.ts b/src/CenterMentor/centermentor.schema.ts index 37f2e59..e943b66 100644 --- a/src/CenterMentor/centermentor.schema.ts +++ b/src/CenterMentor/centermentor.schema.ts @@ -147,6 +147,20 @@ export class CenterMentorSchema extends PothosSchema { if (!userId) { throw new Error('User ID is required') } + // block invite center owner + const centerOwner = await prisma.center.findUnique({ + where: { centerOwnerId: userId }, + }) + if (centerOwner) { + throw new Error('Center owner cannot be invited as a mentor') + } + // block invite mentor to own center and owner from another center + const centerMentor = await prisma.centerMentor.findUnique({ + where: { mentorId: userId }, + }) + if (centerMentor) { + throw new Error('Mentor already has a center') + } // get centerId by user id const center = await prisma.center.findUnique({ where: { centerOwnerId: userId },