From d2b99303f90441ee80ea32b34cf6d4edee3a5cc7 Mon Sep 17 00:00:00 2001 From: Mythie Date: Wed, 21 Aug 2024 13:12:03 +1000 Subject: [PATCH] fix: simplify deleted query --- .../server-only/document/find-documents.ts | 137 ++---------------- .../lib/server-only/document/get-stats.ts | 12 +- .../trpc/server/document-router/router.ts | 2 - 3 files changed, 19 insertions(+), 132 deletions(-) diff --git a/packages/lib/server-only/document/find-documents.ts b/packages/lib/server-only/document/find-documents.ts index 0c94130e5..a3caa2831 100644 --- a/packages/lib/server-only/document/find-documents.ts +++ b/packages/lib/server-only/document/find-documents.ts @@ -26,115 +26,6 @@ export type FindDocumentsOptions = { senderIds?: number[]; }; -const getDeletedFilter = ( - status: ExtendedDocumentStatus, - user: User, - team?: (Team & { teamEmail: TeamEmail | null }) | null, -) => { - if (status === ExtendedDocumentStatus.BIN) { - return { - OR: [ - { - userId: user.id, - deletedAt: { - gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), - }, - }, - { - Recipient: { - some: { - email: user.email, - documentDeletedAt: { - gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), - }, - }, - }, - }, - ...(team - ? [ - { - teamId: team.id, - deletedAt: { - gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), - }, - }, - ...(team.teamEmail - ? [ - { - User: { - email: team.teamEmail.email, - }, - deletedAt: { - gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), - }, - }, - { - Recipient: { - some: { - email: team.teamEmail.email, - documentDeletedAt: { - gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), - }, - }, - }, - }, - ] - : []), - ] - : []), - ], - }; - } - - return { - AND: { - OR: [ - { - userId: user.id, - deletedAt: null, - }, - { - Recipient: { - some: { - email: user.email, - documentDeletedAt: null, - }, - }, - }, - ...(team - ? team.teamEmail - ? [ - { - teamId: team.id, - deletedAt: null, - }, - { - User: { - email: team.teamEmail.email, - }, - deletedAt: null, - }, - { - Recipient: { - some: { - email: team.teamEmail.email, - documentDeletedAt: null, - }, - }, - }, - ] - : [ - { - teamId: team.id, - deletedAt: null, - }, - ] - : []), - ], - }, - }; -}; - export const findDocuments = async ({ userId, teamId, @@ -190,12 +81,9 @@ export const findDocuments = async ({ }; } - const deletedFilter = getDeletedFilter(status, user, team); - const whereClause: Prisma.DocumentWhereInput = { ...termFilters, ...filters, - ...deletedFilter, }; if (period) { @@ -356,7 +244,6 @@ const findDocumentsFilter = (status: ExtendedDocumentStatus, user: User) => { { userId: user.id, teamId: null, - status: ExtendedDocumentStatus.COMPLETED, deletedAt: { gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), }, @@ -554,19 +441,17 @@ const findTeamDocumentsFilter = ( return filter; }) .with(ExtendedDocumentStatus.BIN, () => { - const filter: Prisma.DocumentWhereInput = { - OR: [ - { - teamId: team.id, - deletedAt: { - gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), - }, + const filters: Prisma.DocumentWhereInput[] = [ + { + teamId: team.id, + deletedAt: { + gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), }, - ], - }; + }, + ]; - if (teamEmail && filter.OR) { - filter.OR.push( + if (teamEmail) { + filters.push( { User: { email: teamEmail, @@ -588,7 +473,9 @@ const findTeamDocumentsFilter = ( ); } - return filter; + return { + OR: filters, + }; }) .exhaustive(); diff --git a/packages/lib/server-only/document/get-stats.ts b/packages/lib/server-only/document/get-stats.ts index 86ffc1618..632ce2412 100644 --- a/packages/lib/server-only/document/get-stats.ts +++ b/packages/lib/server-only/document/get-stats.ts @@ -197,9 +197,7 @@ type GetTeamCountsOption = { }; const getTeamCounts = async (options: GetTeamCountsOption) => { - const { createdAt, teamId, teamEmail } = options; - - const senderIds = options.senderIds ?? []; + const { createdAt, teamId, teamEmail, senderIds = [] } = options; const userIdWhereClause: Prisma.DocumentWhereInput['userId'] = senderIds.length > 0 @@ -298,9 +296,13 @@ const getTeamCounts = async (options: GetTeamCountsOption) => { _all: true, }, where: { - userId: userIdWhereClause, - createdAt, OR: [ + { + teamId, + deletedAt: { + gte: DateTime.now().minus({ days: 30 }).startOf('day').toJSDate(), + }, + }, { status: ExtendedDocumentStatus.PENDING, Recipient: { diff --git a/packages/trpc/server/document-router/router.ts b/packages/trpc/server/document-router/router.ts index 0ae8b35b4..928deaf60 100644 --- a/packages/trpc/server/document-router/router.ts +++ b/packages/trpc/server/document-router/router.ts @@ -205,8 +205,6 @@ export const documentRouter = router({ requestMetadata: extractNextApiRequestMetadata(ctx.req), }); - console.log(restoredDocument); - return restoredDocument; } catch (err) { console.error(err);