File

projects/prestations-ng/src/sdk-session-info/session-info.service.ts

Index

Properties
Accessors

Constructor

constructor(http: HttpClient, neverConnected_: boolean)
Parameters :
Name Type Optional
http HttpClient No
neverConnected_ boolean No

Properties

Private pulling_
Type : Observable<SessionInfoData>
Private sessionData
Type : SessionInfoData

Accessors

data
getdata()
neverConnected
getneverConnected()
setneverConnected(neverConnected: boolean)
Parameters :
Name Type Optional
neverConnected boolean No
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;
    }
}

results matching ""

    No results matching ""