@@ -69,30 +69,44 @@ export default {
6969        const  myTenantId  =  await  this . getAuthenticatedUserTenant ( ) ; 
7070        const  options  =  [ ] ; 
7171
72+         this . _userCache  =  this . _userCache  ||  new  Map ( ) ; 
73+ 
7274        for  ( const  chat  of  response . value )  { 
7375          const  messages  =  await  this . makeRequest ( { 
7476            path : `/chats/${ chat . id }  , 
7577          } ) ; 
7678
7779          const  members  =  await  Promise . all ( chat . members . map ( async  ( member )  =>  { 
78-             let  displayName  =  member . displayName ; 
79- 
80-             if  ( ! displayName  &&  messages . value . length  >  0 )  { 
81-               const  userMessage  =  messages . value . find ( ( msg )  => 
82-                 msg . from ?. user ?. id  ===  member . userId ) ; 
83-               if  ( userMessage ?. from ?. user ?. displayName )  { 
84-                 displayName  =  userMessage . from . user . displayName ; 
85-               } 
86-             } 
80+             const  cacheKey  =  `user_${ member . userId }  ; 
81+             let  displayName  =  member . displayName  ||  this . _userCache . get ( cacheKey ) ; 
8782
8883            if  ( ! displayName )  { 
8984              try  { 
90-                 const  userDetails  =  await  this . makeRequest ( { 
91-                   path : `/users/${ member . userId }  , 
92-                 } ) ; 
93-                 displayName  =  userDetails . displayName ; 
85+                 if  ( messages ?. value ?. length  >  0 )  { 
86+                   const  userMessage  =  messages . value . find ( ( msg )  => 
87+                     msg . from ?. user ?. id  ===  member . userId ) ; 
88+                   if  ( userMessage ?. from ?. user ?. displayName )  { 
89+                     displayName  =  userMessage . from . user . displayName ; 
90+                   } 
91+                 } 
92+ 
93+                 if  ( ! displayName )  { 
94+                   const  userDetails  =  await  this . makeRequest ( { 
95+                     path : `/users/${ member . userId }  , 
96+                   } ) ; 
97+                   displayName  =  userDetails . displayName ; 
98+                 } 
99+ 
100+                 this . _userCache . set ( cacheKey ,  displayName ) ; 
94101              }  catch  ( err )  { 
95-                 displayName  =  "Unknown User" ; 
102+                 if  ( err . statusCode  ===  404 )  { 
103+                   displayName  =  "User Not Found" ; 
104+                 }  else  if  ( err . statusCode  ===  403 )  { 
105+                   displayName  =  "Access Denied" ; 
106+                 }  else  { 
107+                   displayName  =  "Unknown User" ; 
108+                 } 
109+                 console . error ( `Failed to fetch user details for ${ member . userId }  ,  err ) ; 
96110              } 
97111            } 
98112
@@ -179,10 +193,20 @@ export default {
179193        } ,  api ) ; 
180194    } , 
181195    async  getAuthenticatedUserTenant ( )  { 
182-       const  {  value }  =  await  this . client ( ) 
183-         . api ( "/organization" ) 
184-         . get ( ) ; 
185-       return  value [ 0 ] . id ; 
196+       try  { 
197+         const  {  value }  =  await  this . client ( ) 
198+           . api ( "/organization" ) 
199+           . get ( ) ; 
200+ 
201+         if  ( ! value  ||  value . length  ===  0 )  { 
202+           throw  new  Error ( "No organization found" ) ; 
203+         } 
204+ 
205+         return  value [ 0 ] . id ; 
206+       }  catch  ( error )  { 
207+         console . error ( "Failed to fetch tenant ID:" ,  error ) ; 
208+         throw  new  Error ( "Unable to determine tenant ID" ) ; 
209+       } 
186210    } , 
187211    async  authenticatedUserId ( )  { 
188212      const  {  id }  =  await  this . client ( ) 
0 commit comments