Skip to content

Commit eb437ac

Browse files
fix: Missing personal event types in All filter
Signed-off-by: Anirban Singha <[email protected]>
1 parent 8d2a072 commit eb437ac

File tree

1 file changed

+63
-36
lines changed

1 file changed

+63
-36
lines changed

packages/features/insights/server/trpc-router.ts

Lines changed: 63 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,10 +1075,32 @@ async function getEventTypeList({
10751075
}
10761076

10771077
const membershipWhereConditional: Prisma.MembershipWhereInput = {};
1078-
10791078
let childrenTeamIds: number[] = [];
10801079

1081-
if (isAll && teamId && user.organizationId && user.isOwnerAdminOfParentTeam) {
1080+
if (userId && !teamId && !isAll) {
1081+
const eventTypeResult = await prisma.eventType.findMany({
1082+
select: {
1083+
id: true,
1084+
slug: true,
1085+
title: true,
1086+
teamId: true,
1087+
userId: true,
1088+
team: {
1089+
select: {
1090+
name: true,
1091+
},
1092+
},
1093+
},
1094+
where: {
1095+
userId: user.id,
1096+
teamId: null,
1097+
},
1098+
});
1099+
1100+
return eventTypeResult;
1101+
}
1102+
1103+
if (isAll && user.organizationId && user.isOwnerAdminOfParentTeam) {
10821104
const childTeams = await prisma.team.findMany({
10831105
where: {
10841106
parentId: user.organizationId,
@@ -1087,21 +1109,46 @@ async function getEventTypeList({
10871109
id: true,
10881110
},
10891111
});
1112+
10901113
if (childTeams.length > 0) {
10911114
childrenTeamIds = childTeams.map((team) => team.id);
10921115
}
1093-
membershipWhereConditional["teamId"] = {
1094-
in: [user.organizationId, ...childrenTeamIds],
1095-
};
1116+
1117+
const eventTypeResult = await prisma.eventType.findMany({
1118+
select: {
1119+
id: true,
1120+
slug: true,
1121+
title: true,
1122+
teamId: true,
1123+
userId: true,
1124+
team: {
1125+
select: {
1126+
name: true,
1127+
},
1128+
},
1129+
},
1130+
where: {
1131+
OR: [
1132+
{
1133+
teamId: {
1134+
in: [user.organizationId, ...childrenTeamIds],
1135+
},
1136+
},
1137+
{
1138+
userId: user.id,
1139+
teamId: null,
1140+
},
1141+
],
1142+
},
1143+
});
1144+
1145+
return eventTypeResult;
10961146
}
10971147

10981148
if (teamId && !isAll) {
10991149
membershipWhereConditional["teamId"] = teamId;
11001150
membershipWhereConditional["userId"] = user.id;
11011151
}
1102-
if (userId) {
1103-
membershipWhereConditional["userId"] = userId;
1104-
}
11051152

11061153
// I'm not using unique here since when userId comes from input we should look for every
11071154
// event type that user owns
@@ -1114,49 +1161,29 @@ async function getEventTypeList({
11141161
}
11151162

11161163
const eventTypeWhereConditional: Prisma.EventTypeWhereInput = {};
1117-
if (isAll && childrenTeamIds.length > 0 && user.organizationId && user.isOwnerAdminOfParentTeam) {
1118-
eventTypeWhereConditional["teamId"] = {
1119-
in: [user.organizationId, ...childrenTeamIds],
1120-
};
1121-
}
1164+
11221165
if (teamId && !isAll) {
11231166
eventTypeWhereConditional["teamId"] = teamId;
11241167
}
1125-
if (userId) {
1126-
eventTypeWhereConditional["userId"] = userId;
1127-
}
1128-
let eventTypeResult: Prisma.EventTypeGetPayload<{
1129-
select: {
1130-
id: true;
1131-
slug: true;
1132-
teamId: true;
1133-
title: true;
1134-
team: {
1135-
select: {
1136-
name: true;
1137-
};
1138-
};
1139-
};
1140-
}>[] = [];
11411168

11421169
let isMember = membership?.role === "MEMBER";
11431170
if (user.isOwnerAdminOfParentTeam) {
11441171
isMember = false;
11451172
}
1173+
11461174
if (isMember) {
1147-
eventTypeWhereConditional["OR"] = [
1148-
{ userId: user.id },
1149-
{ users: { some: { id: user.id } } },
1150-
// @TODO this is not working as expected
1151-
// hosts: { some: { id: user.id } },
1152-
];
1175+
eventTypeWhereConditional["OR"] = [{ userId: user.id }, { users: { some: { id: user.id } } }];
1176+
// @TODO this is not working as expected
1177+
// hosts: { some: { id: user.id } },
11531178
}
1154-
eventTypeResult = await prisma.eventType.findMany({
1179+
1180+
const eventTypeResult = await prisma.eventType.findMany({
11551181
select: {
11561182
id: true,
11571183
slug: true,
11581184
title: true,
11591185
teamId: true,
1186+
userId: true,
11601187
team: {
11611188
select: {
11621189
name: true,

0 commit comments

Comments
 (0)