@@ -446,17 +446,21 @@ export async function queryMembersAdvanced(
446446 return { rows : [ ] , count, limit, offset }
447447 }
448448
449- const [ memberOrganizations , identities , memberSegments ] = await Promise . all ( [
449+ const [ memberOrganizations , identities , memberSegments , maintainerRoles ] = await Promise . all ( [
450450 include . memberOrganizations ? fetchManyMemberOrgs ( qx , memberIds ) : Promise . resolve ( [ ] ) ,
451451 include . identities ? fetchManyMemberIdentities ( qx , memberIds ) : Promise . resolve ( [ ] ) ,
452452 include . segments ? fetchManyMemberSegments ( qx , memberIds ) : Promise . resolve ( [ ] ) ,
453+ include . maintainers ? findMaintainerRoles ( qx , memberIds ) : Promise . resolve ( [ ] ) ,
453454 ] )
454455
455- const [ orgExtra , segmentsInfo ] = await Promise . all ( [
456+ const [ orgExtra , segmentsInfo , maintainerSegmentsInfo ] = await Promise . all ( [
456457 include . memberOrganizations
457458 ? fetchOrganizationData ( qx , memberOrganizations )
458459 : Promise . resolve ( { orgs : [ ] , lfx : [ ] } ) ,
459460 include . segments ? fetchSegmentData ( qx , memberSegments ) : Promise . resolve ( [ ] ) ,
461+ include . maintainers && maintainerRoles . length > 0
462+ ? fetchManySegments ( qx , uniq ( maintainerRoles . map ( ( m ) => m . segmentId ) ) )
463+ : Promise . resolve ( [ ] ) ,
460464 ] )
461465
462466 if ( include . memberOrganizations ) {
@@ -515,14 +519,10 @@ export async function queryMembersAdvanced(
515519 }
516520
517521 if ( include . maintainers ) {
518- const maintainerRoles = await findMaintainerRoles ( qx , memberIds )
519- const segmentIds = uniq ( maintainerRoles . map ( ( m ) => m . segmentId ) )
520- const segmentsInfo = await fetchManySegments ( qx , segmentIds )
521-
522522 const groupedMaintainers = groupBy ( maintainerRoles , ( m ) => m . memberId )
523523 rows . forEach ( ( member ) => {
524524 member . maintainerRoles = ( groupedMaintainers . get ( member . id ) || [ ] ) . map ( ( role ) => {
525- const segmentInfo = segmentsInfo . find ( ( s ) => s . id === role . segmentId )
525+ const segmentInfo = maintainerSegmentsInfo . find ( ( s ) => s . id === role . segmentId )
526526 return {
527527 ...role ,
528528 segmentName : segmentInfo ?. name ,
0 commit comments