@@ -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