fix: merge conflicts

This commit is contained in:
Ephraim Atta-Duncan
2024-09-21 09:07:16 +00:00
449 changed files with 28724 additions and 4841 deletions

View File

@ -2,10 +2,11 @@ import { DateTime } from 'luxon';
import { P, match } from 'ts-pattern';
import { prisma } from '@documenso/prisma';
import { Prisma, RecipientRole, SigningStatus } from '@documenso/prisma/client';
import { Prisma, RecipientRole, SigningStatus, TeamMemberRole } from '@documenso/prisma/client';
import type { Document, Team, TeamEmail, User } from '@documenso/prisma/client';
import { ExtendedDocumentStatus } from '@documenso/prisma/types/extended-document-status';
import { DocumentVisibility } from '../../types/document-visibility';
import type { FindResultSet } from '../../types/find-result-set';
import { maskRecipientTokensForDocument } from '../../utils/mask-recipient-tokens-for-document';
@ -48,9 +49,23 @@ export const findDocuments = async ({
team = await tx.team.findFirstOrThrow({
where: {
id: teamId,
members: { some: { userId } },
members: {
some: {
userId,
},
},
},
include: {
teamEmail: true,
members: {
where: {
userId,
},
select: {
role: true,
},
},
},
include: { teamEmail: true },
});
}
@ -59,6 +74,7 @@ export const findDocuments = async ({
const orderByColumn = orderBy?.column ?? 'createdAt';
const orderByDirection = orderBy?.direction ?? 'desc';
const teamMemberRole = team?.members[0].role ?? null;
const termFilters = match(term)
.with(P.string.minLength(1), () => ({
@ -69,7 +85,37 @@ export const findDocuments = async ({
}))
.otherwise(() => undefined);
const filters = team ? findTeamDocumentsFilter(status, team) : findDocumentsFilter(status, user);
const visibilityFilters = [
match(teamMemberRole)
.with(TeamMemberRole.ADMIN, () => ({
visibility: {
in: [
DocumentVisibility.EVERYONE,
DocumentVisibility.MANAGER_AND_ABOVE,
DocumentVisibility.ADMIN,
],
},
}))
.with(TeamMemberRole.MANAGER, () => ({
visibility: {
in: [DocumentVisibility.EVERYONE, DocumentVisibility.MANAGER_AND_ABOVE],
},
}))
.otherwise(() => ({ visibility: DocumentVisibility.EVERYONE })),
{
Recipient: {
some: {
email: user.email,
},
},
},
];
let filters: Prisma.DocumentWhereInput | null = findDocumentsFilter(status, user);
if (team) {
filters = findTeamDocumentsFilter(status, team, visibilityFilters);
}
if (filters === null) {
return {
@ -309,6 +355,7 @@ const findDocumentsFilter = (status: ExtendedDocumentStatus, user: User) => {
const findTeamDocumentsFilter = (
status: ExtendedDocumentStatus,
team: Team & { teamEmail: TeamEmail | null },
visibilityFilters: Prisma.DocumentWhereInput[],
) => {
const teamEmail = team.teamEmail?.email ?? null;
@ -319,6 +366,7 @@ const findTeamDocumentsFilter = (
{
teamId: team.id,
deletedAt: null,
OR: visibilityFilters,
},
],
};
@ -334,6 +382,7 @@ const findTeamDocumentsFilter = (
},
},
deletedAt: null,
OR: visibilityFilters,
});
filter.OR.push({
@ -341,6 +390,7 @@ const findTeamDocumentsFilter = (
email: teamEmail,
},
deletedAt: null,
OR: visibilityFilters,
});
}
@ -365,6 +415,7 @@ const findTeamDocumentsFilter = (
},
},
deletedAt: null,
OR: visibilityFilters,
};
})
.with(ExtendedDocumentStatus.DRAFT, () => {
@ -374,6 +425,7 @@ const findTeamDocumentsFilter = (
teamId: team.id,
status: ExtendedDocumentStatus.DRAFT,
deletedAt: null,
OR: visibilityFilters,
},
],
};
@ -385,6 +437,7 @@ const findTeamDocumentsFilter = (
email: teamEmail,
},
deletedAt: null,
OR: visibilityFilters,
});
}
@ -397,6 +450,7 @@ const findTeamDocumentsFilter = (
teamId: team.id,
status: ExtendedDocumentStatus.PENDING,
deletedAt: null,
OR: visibilityFilters,
},
],
};
@ -415,11 +469,13 @@ const findTeamDocumentsFilter = (
},
},
},
OR: visibilityFilters,
},
{
User: {
email: teamEmail,
},
OR: visibilityFilters,
},
],
deletedAt: null,
@ -435,6 +491,7 @@ const findTeamDocumentsFilter = (
OR: [
{
teamId: team.id,
OR: visibilityFilters,
},
],
};
@ -447,11 +504,13 @@ const findTeamDocumentsFilter = (
email: teamEmail,
},
},
OR: visibilityFilters,
},
{
User: {
email: teamEmail,
},
OR: visibilityFilters,
},
);
}