@@ -220,6 +220,7 @@ export class CallMembership {
220220
221221 private membershipData : MembershipData ;
222222
223+ private parentEventData : { eventId : string ; sender : string } ;
223224 public constructor (
224225 private parentEvent : MatrixEvent ,
225226 data : any ,
@@ -238,20 +239,27 @@ export class CallMembership {
238239 `events this could be a legacy membership event: (${ data } )` ,
239240 ) ;
240241 }
242+
243+ const eventId = parentEvent . getId ( ) ;
244+ const sender = parentEvent . getSender ( ) ;
245+
246+ if ( eventId === undefined ) throw new Error ( "parentEvent is missing eventId field" ) ;
247+ if ( sender === undefined ) throw new Error ( "parentEvent is missing sender field" ) ;
248+ this . parentEventData = { eventId, sender } ;
241249 }
242250
243- public get sender ( ) : string | undefined {
251+ public get sender ( ) : string {
244252 const { kind, data } = this . membershipData ;
245253 switch ( kind ) {
246254 case "rtc" :
247255 return data . member . user_id ;
248256 case "session" :
249- return this . parentEvent . getSender ( ) ;
257+ return this . parentEventData . sender ;
250258 }
251259 }
252260
253- public get eventId ( ) : string | undefined {
254- return this . parentEvent . getId ( ) ;
261+ public get eventId ( ) : string {
262+ return this . parentEventData . eventId ;
255263 }
256264
257265 /**
@@ -306,6 +314,8 @@ export class CallMembership {
306314 return undefined ;
307315 case "session" :
308316 return data . scope ;
317+ default :
318+ return undefined ;
309319 }
310320 }
311321
0 commit comments