From 9278214d7796318ebe6b558bd0d5d3d3eff832cc Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Thu, 14 May 2026 07:20:58 +0300 Subject: [PATCH] Fix can't add friend to pick-up scrim with no friend code --- app/features/scrims/actions/scrims.new.server.ts | 4 +++- app/features/sendouq/SQGroupRepository.server.ts | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/features/scrims/actions/scrims.new.server.ts b/app/features/scrims/actions/scrims.new.server.ts index 8d7b66e62..30e27177d 100644 --- a/app/features/scrims/actions/scrims.new.server.ts +++ b/app/features/scrims/actions/scrims.new.server.ts @@ -161,7 +161,9 @@ async function validatePickup(userIds: number[], authorId: number) { async function validatePickupFriends(userIds: number[], authorId: number) { const unconsentingUsers: string[] = []; - const friendsData = await SQGroupRepository.friendsAndTeammates(authorId); + const friendsData = await SQGroupRepository.friendsAndTeammates(authorId, { + requireFriendCode: false, + }); for (const userId of userIds) { const user = await UserRepository.findLeanById(userId); diff --git a/app/features/sendouq/SQGroupRepository.server.ts b/app/features/sendouq/SQGroupRepository.server.ts index 96ab38dcd..d5515dfa4 100644 --- a/app/features/sendouq/SQGroupRepository.server.ts +++ b/app/features/sendouq/SQGroupRepository.server.ts @@ -417,7 +417,10 @@ export function rechallenge({ .execute(); } -export async function friendsAndTeammates(userId: number) { +export async function friendsAndTeammates( + userId: number, + { requireFriendCode = true }: { requireFriendCode?: boolean } = {}, +) { const teams = await db .selectFrom("TeamMemberWithSecondary") .innerJoin("Team", "Team.id", "TeamMemberWithSecondary.teamId") @@ -428,7 +431,9 @@ export async function friendsAndTeammates(userId: number) { const rows = await db .selectFrom("TeamMemberWithSecondary") .innerJoin("User", "User.id", "TeamMemberWithSecondary.userId") - .innerJoin("UserFriendCode", "UserFriendCode.userId", "User.id") + .$if(requireFriendCode, (qb) => + qb.innerJoin("UserFriendCode", "UserFriendCode.userId", "User.id"), + ) .select([ ...COMMON_USER_FIELDS, "User.inGameName", @@ -456,7 +461,9 @@ export async function friendsAndTeammates(userId: number) { ]), ), ) - .innerJoin("UserFriendCode", "UserFriendCode.userId", "User.id") + .$if(requireFriendCode, (qb) => + qb.innerJoin("UserFriendCode", "UserFriendCode.userId", "User.id"), + ) .select([ ...COMMON_USER_FIELDS, "User.inGameName",