File

projects/prestations-ng/src/sdk-events-logger/sdk-events-logger.service.ts

Index

Properties
Methods
Accessors

Constructor

constructor(activatedRoute: ActivatedRoute, gesdemService: GesdemHandlerService, sessionInfo: SessionInfo)
Parameters :
Name Type Optional
activatedRoute ActivatedRoute No
gesdemService GesdemHandlerService No
sessionInfo SessionInfo No

Methods

addEvent
addEvent(type: SdkEventType | string, detail?: string)
Parameters :
Name Type Optional
type SdkEventType | string No
detail string Yes
Returns : void

Properties

Private _events
Default value : new Subject<SdkEvent>()

Accessors

events
getevents()
import { Injectable } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Observable, Subject } from 'rxjs';
import { first } from 'rxjs/operators';

import { GesdemHandlerService } from '../gesdem/gesdem-handler.service';
import { DemandeHelper } from '../helpers/demande.helper';
import { SdkEvent } from '../sdk-events-logger/sdk-event';
import { SdkEventType } from '../sdk-events-logger/sdk-event-type';
import { SessionInfo } from '../sdk-session-info/session-info.service';

@Injectable({
    providedIn: 'root'
})
export class SdkEventsLoggerService {
    private _events = new Subject<SdkEvent>();

    constructor(
        private activatedRoute: ActivatedRoute,
        private gesdemService: GesdemHandlerService,
        private sessionInfo: SessionInfo
    ) {}

    get events(): Observable<SdkEvent> {
        return this._events.asObservable();
    }

    addEvent(type: SdkEventType | string, detail?: string): void {
        const timestamp = new Date();

        const reference =
            DemandeHelper.getSafeReference(
                this.activatedRoute.snapshot.params.reference
            ) ||
            DemandeHelper.getSafeReference(
                this.gesdemService.lastResponse?.meta?.reference
            );

        this.sessionInfo.data.pipe(first()).subscribe(sessionInfoData => {
            const event: SdkEvent = {
                timestamp,
                reference,
                sessionInfoContext: sessionInfoData?.context || null,
                type,
                detail: detail || null
            };

            this._events.next(event);
        });
    }
}

results matching ""

    No results matching ""