@@ -69,7 +69,7 @@ class OpenDtuApi {
6969 this . baseUrl = baseUrl ;
7070 }
7171
72- public setUserString ( userString : string ) : void {
72+ public setUserString ( userString : string | null ) : void {
7373 this . userString = userString ;
7474 }
7575
@@ -142,7 +142,7 @@ class OpenDtuApi {
142142 this . onDisconnectedHandler = null ;
143143 }
144144
145- private async getSystemStatusFromUrl (
145+ public async getSystemStatusFromUrl (
146146 url : URL ,
147147 ) : Promise < GetSystemStatusReturn > {
148148 // GET <url>/api/system/status
@@ -288,13 +288,15 @@ class OpenDtuApi {
288288 return ;
289289 }
290290
291- if ( this . baseUrl && this . userString ) {
291+ if ( this . baseUrl ) {
292292 const urlObject = new URL ( this . baseUrl ) ;
293293 const authString = this . getAuthString ( ) ;
294294 const protocol = urlObject . protocol === 'https:' ? 'wss' : 'ws' ;
295295 const host = urlObject . host ;
296296
297- const url = `${ protocol } ://${ authString } ${ host } /livedata` ;
297+ const url = `${ protocol } ://${ authString ?? '' } ${ host } /livedata` ;
298+
299+ console . log ( `Connecting websocket to ${ url } ` ) ;
298300
299301 this . ws = new WebSocket ( url ) ;
300302
@@ -466,9 +468,13 @@ class OpenDtuApi {
466468 ) ;
467469 }
468470
469- private getAuthString ( ) : string {
471+ private getAuthString ( ) : string | null {
470472 let user = null ;
471473
474+ if ( ! this . userString ) {
475+ return null ;
476+ }
477+
472478 try {
473479 user = JSON . parse ( this . userString || '' ) ;
474480 } catch {
@@ -492,6 +498,10 @@ class OpenDtuApi {
492498 'GET' ,
493499 ) ;
494500
501+ if ( ! res ) {
502+ return null ;
503+ }
504+
495505 if ( res . status === 200 ) {
496506 return await res . json ( ) ;
497507 }
@@ -506,6 +516,10 @@ class OpenDtuApi {
506516
507517 const res = await this . makeAuthenticatedRequest ( '/api/ntp/status' , 'GET' ) ;
508518
519+ if ( ! res ) {
520+ return null ;
521+ }
522+
509523 if ( res . status === 200 ) {
510524 return await res . json ( ) ;
511525 }
@@ -520,6 +534,10 @@ class OpenDtuApi {
520534
521535 const res = await this . makeAuthenticatedRequest ( '/api/mqtt/status' , 'GET' ) ;
522536
537+ if ( ! res ) {
538+ return null ;
539+ }
540+
523541 if ( res . status === 200 ) {
524542 return await res . json ( ) ;
525543 }
@@ -531,7 +549,7 @@ class OpenDtuApi {
531549 route : string ,
532550 method : string ,
533551 body : string | null = null ,
534- ) : Promise < Response > {
552+ ) : Promise < Response | null > {
535553 const authString = this . getAuthString ( ) ;
536554
537555 const controller = new AbortController ( ) ;
@@ -546,8 +564,8 @@ class OpenDtuApi {
546564 signal : controller . signal ,
547565 headers : {
548566 'X-Requested-With' : 'XMLHttpRequest' ,
549- Authorization : 'Basic ' + authString ,
550567 'Content-Type' : 'application/json' ,
568+ ...( authString ? { Authorization : 'Basic ' + authString } : { } ) ,
551569 } ,
552570 } ;
553571
@@ -558,12 +576,16 @@ class OpenDtuApi {
558576 const url = `${ authString } ${ this . baseUrl } ${ route } ` ;
559577
560578 console . log ( 'makeAuthenticatedRequest' , url , requestOptions ) ;
561- const res = await fetch ( url , requestOptions ) ;
562- if ( res . status === 200 ) {
579+
580+ try {
581+ const res = await fetch ( url , requestOptions ) ;
563582 clearTimeout ( abortTimeout ) ;
564- }
565583
566- return res ;
584+ return res ;
585+ } catch ( error ) {
586+ console . log ( 'makeAuthenticatedRequest error' , error ) ;
587+ return null ;
588+ }
567589 }
568590}
569591
0 commit comments