Auth and user data BehaviourSubjects - luftsport/nlf-client GitHub Wiki

Usage

Auth and auth data subjects

import { NlfAuthSubjectService } from 'app/services/auth/auth-subject.service';

constructor(public authSubject: NlfAuthSubjectService) {}

this.authObservable = this.authSubject.observableAuth;
this.authDataObservable = this.authSubject.observableAuthData;

authObservable returns a boolean.

authDataObservable returns an instance of AuthDataSubjectInterface:

export interface AuthDataSubjectInterface {
    token: string;
    person_id: number;
    valid: Date;
}

User data subject

import { NlfUserSubjectService } from 'app/user/user-subject.service';

constructor(private userSubject: NlfUserSubjectService) {
    this.userSubject.observable.subscribe(data => this.userData = data);
}

The user data interface

export interface ApiUserDataSubjectItem {
    settings?: ApiUserSettingsItem;
    person_id?: number;
    activities?: string[];
    acl?: ApiUserAcl[];
    _etag?: string;
    _id?: string;
}

settings is persistent and on change will be stored in the backend api.