From 8e443b17956f07fecde36309a7123defade67638 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Thu, 27 Feb 2025 14:21:42 +1100 Subject: [PATCH] fix: team member invites --- packages/lib/server-only/team/create-team-member-invites.ts | 4 +++- packages/lib/server-only/team/find-team-member-invites.ts | 3 ++- packages/lib/server-only/team/get-team-invitations.ts | 2 ++ packages/prisma/schema.prisma | 2 -- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/lib/server-only/team/create-team-member-invites.ts b/packages/lib/server-only/team/create-team-member-invites.ts index 3d965da3c..d6a23d932 100644 --- a/packages/lib/server-only/team/create-team-member-invites.ts +++ b/packages/lib/server-only/team/create-team-member-invites.ts @@ -65,7 +65,9 @@ export const createTeamMemberInvites = async ({ }); const teamMemberEmails = team.members.map((member) => member.user.email); - const teamMemberInviteEmails = team.invites.map((invite) => invite.email); + const teamMemberInviteEmails = team.invites + .filter((invite) => invite.status === TeamMemberInviteStatus.PENDING) + .map((invite) => invite.email); const currentTeamMember = team.members.find((member) => member.user.id === userId); if (!currentTeamMember) { diff --git a/packages/lib/server-only/team/find-team-member-invites.ts b/packages/lib/server-only/team/find-team-member-invites.ts index ccc4fbb2b..b027217e1 100644 --- a/packages/lib/server-only/team/find-team-member-invites.ts +++ b/packages/lib/server-only/team/find-team-member-invites.ts @@ -1,5 +1,5 @@ import type { TeamMemberInvite } from '@prisma/client'; -import { Prisma } from '@prisma/client'; +import { Prisma, TeamMemberInviteStatus } from '@prisma/client'; import { P, match } from 'ts-pattern'; import type { z } from 'zod'; @@ -71,6 +71,7 @@ export const findTeamMemberInvites = async ({ const whereClause: Prisma.TeamMemberInviteWhereInput = { ...termFilters, teamId: userTeam.id, + status: TeamMemberInviteStatus.PENDING, }; const [data, count] = await Promise.all([ diff --git a/packages/lib/server-only/team/get-team-invitations.ts b/packages/lib/server-only/team/get-team-invitations.ts index 0ae3e0e5b..037231f3d 100644 --- a/packages/lib/server-only/team/get-team-invitations.ts +++ b/packages/lib/server-only/team/get-team-invitations.ts @@ -1,3 +1,4 @@ +import { TeamMemberInviteStatus } from '@prisma/client'; import type { z } from 'zod'; import { prisma } from '@documenso/prisma'; @@ -25,6 +26,7 @@ export const getTeamInvitations = async ({ return await prisma.teamMemberInvite.findMany({ where: { email, + status: TeamMemberInviteStatus.PENDING, }, include: { team: { diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index ce7e4ed8f..5bdf246bf 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -647,8 +647,6 @@ model TeamMemberInvite { role TeamMemberRole token String @unique team Team @relation(fields: [teamId], references: [id], onDelete: Cascade) - - @@unique([teamId, email]) } enum TemplateType {