From 38056b6f5a2a152e2cb281f6c3ee89e82de8eead Mon Sep 17 00:00:00 2001 From: Rami Abdou Date: Wed, 23 Jul 2025 12:13:56 -0700 Subject: [PATCH] also account for applications --- .../src/modules/applications/applications.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/core/src/modules/applications/applications.ts b/packages/core/src/modules/applications/applications.ts index c562911dc..67c1a4dd9 100644 --- a/packages/core/src/modules/applications/applications.ts +++ b/packages/core/src/modules/applications/applications.ts @@ -631,12 +631,22 @@ async function shouldReject( return [true, 'email_already_used']; } - const memberWithSameLinkedIn = await db - .selectFrom('students') - .where('linkedInUrl', 'ilike', application.linkedInUrl) - .executeTakeFirst(); - - if (memberWithSameLinkedIn) { + const [memberWithSameLinkedIn, applicationAcceptedWithSameLinkedIn] = + await Promise.all([ + db + .selectFrom('students') + .where('linkedInUrl', 'ilike', application.linkedInUrl) + .executeTakeFirst(), + + db + .selectFrom('applications') + .where('id', '!=', application.id) + .where('linkedInUrl', 'ilike', application.linkedInUrl) + .where('status', '=', ApplicationStatus.ACCEPTED) + .executeTakeFirst(), + ]); + + if (memberWithSameLinkedIn || applicationAcceptedWithSameLinkedIn) { return [true, 'linkedin_already_used']; }