From 367fc09c6c635cc78db04aebbd76236c091ce578 Mon Sep 17 00:00:00 2001 From: Ly Tuan Kiet Date: Tue, 3 Dec 2024 19:53:59 +0700 Subject: [PATCH] feat: enhance user validation and center owner checks in CenterMentorSchema - Updated the CenterMentorSchema to include user validation by fetching user information based on email. - Implemented error handling to throw an error if the user is not found. - Modified the logic to block center owners from being invited as mentors by checking against the user's ID instead of the email. - Improved overall error messaging for better clarity when invitation conditions are not met. --- src/CenterMentor/centermentor.schema.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/CenterMentor/centermentor.schema.ts b/src/CenterMentor/centermentor.schema.ts index e943b66..8601335 100644 --- a/src/CenterMentor/centermentor.schema.ts +++ b/src/CenterMentor/centermentor.schema.ts @@ -147,9 +147,16 @@ 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 }, + // get user info + const user = await prisma.user.findUnique({ + where: { email: args.email }, + }) + if (!user) { + throw new Error('User not found') + } + // block invite center owner from another center + const centerOwner = await prisma.center.findFirst({ + where: { centerOwnerId: user.id }, }) if (centerOwner) { throw new Error('Center owner cannot be invited as a mentor')