From 0554b1dcda59126c8ca1aee932afdac7139a9dc7 Mon Sep 17 00:00:00 2001 From: "Kalle (Sendou)" <38327916+Sendouc@users.noreply.github.com> Date: Mon, 6 Dec 2021 02:01:48 +0200 Subject: [PATCH] Add trust when joining a team via invite link --- app/services/tournament.ts | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/app/services/tournament.ts b/app/services/tournament.ts index 07cee08ac..35d040842 100644 --- a/app/services/tournament.ts +++ b/app/services/tournament.ts @@ -285,13 +285,33 @@ export async function joinTeamViaInviteCode({ throw new Response("Team is already full", { status: 400 }); } - return db.tournamentTeamMember.create({ - data: { - tournamentId, - teamId: tournamentTeamToJoin.id, - memberId: userId, - }, - }); + const trustReceiverId = tournamentTeamToJoin.members.find( + ({ captain }) => captain + )!.memberId; + + return Promise.all([ + db.tournamentTeamMember.create({ + data: { + tournamentId, + teamId: tournamentTeamToJoin.id, + memberId: userId, + }, + }), + // TODO: this could also be put to queue and scheduled for later + db.trustRelationships.upsert({ + where: { + trustGiverId_trustReceiverId: { + trustGiverId: userId, + trustReceiverId, + }, + }, + create: { + trustGiverId: userId, + trustReceiverId, + }, + update: {}, + }), + ]); } export async function putPlayerToTeam({