@@ -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 } /messages?$top=50` ,
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