projects/prestations-ng/src/sdk-session-info/session-info.service.ts
Properties |
|
Accessors |
constructor(http: HttpClient, neverConnected_: boolean)
|
|||||||||
Parameters :
|
Private pulling_ |
Type : Observable<SessionInfoData>
|
Private sessionData |
Type : SessionInfoData
|
data |
getdata()
|
neverConnected | ||||||
getneverConnected()
|
||||||
setneverConnected(neverConnected: boolean)
|
||||||
Parameters :
Returns :
void
|
import { HttpClient } from '@angular/common/http';
import { Inject, Injectable, Optional } from '@angular/core';
import { Observable, of } from 'rxjs';
import { map, shareReplay } from 'rxjs/operators';
import { SessionInfoData } from './session-info-data';
export const SESSION_INFO_API_URL = 'api/sessionInfo/data';
@Injectable({
providedIn: 'root'
})
export class SessionInfo {
private sessionData: SessionInfoData;
private pulling_: Observable<SessionInfoData>;
constructor(
private http: HttpClient,
@Optional()
@Inject('neverConnected')
private neverConnected_: boolean = false
) {}
get data(): Observable<SessionInfoData> {
if (this.neverConnected) {
return of(null);
} else {
if (!this.pulling_) {
this.pulling_ = this.http
.get<SessionInfoData>(SESSION_INFO_API_URL)
.pipe(
map((r: SessionInfoData) => {
if (r) {
return (this.sessionData = r);
}
return null;
}),
shareReplay(1)
);
}
return this.pulling_;
}
}
get neverConnected(): boolean {
return this.neverConnected_;
}
set neverConnected(neverConnected: boolean) {
this.neverConnected_ = neverConnected;
}
}