src/storage/no-memory-storage.service.ts   A
last analyzed

Complexity

Total Complexity 3
Complexity/F 1

Size

Lines of Code 46
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 35
mnd 0
bc 0
fnc 3
dl 0
loc 46
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0

3 Functions

Rating   Name   Duplication   Size   Complexity  
A NoMemoryStorage.subscribeUserDataFromStorageByFirebaseUser 0 6 1
A NoMemoryStorage.updateStoredDataByFirebaseUser 0 6 1
A NoMemoryStorage.updateStoredDataByUser 0 3 1
1
import { Injectable } from "@angular/core";
2
import { AngularFireAuth } from "@angular/fire/auth";
3
import { User as FirebaseUser } from "firebase";
4
import { BehaviorSubject, Observable } from "rxjs";
5
import { UniFirebaseLoginConfigProvider } from "../config/uni-firebase-login-config-provider";
6
import { UserModel } from "../model/user-model";
7
import { AbstractStorage } from "./abstract-storage";
8
import { IStorageProvider } from "./i-storage-provider";
9
10
@Injectable({
11
  providedIn: "root",
12
})
13
export class NoMemoryStorage<User extends UserModel = UserModel>
14
  extends AbstractStorage<User>
15
  implements IStorageProvider<User> {
16
  protected user: BehaviorSubject<User | null> = new BehaviorSubject<User | null>(
17
    null,
18
  );
19
20
  public constructor(
21
    angularFireAuth: AngularFireAuth,
22
    configProvider: UniFirebaseLoginConfigProvider,
23
  ) {
24
    super(angularFireAuth, configProvider);
25
  }
26
27
  public async updateStoredDataByUser(user: User): Promise<void> {
28
    this.user.next(user);
29
  }
30
31
  public async updateStoredDataByFirebaseUser(
32
    firebaseUser: FirebaseUser,
33
  ): Promise<void> {
34
    this.user.next(
35
      this.config.mapFirebaseUserToStorageFunc(firebaseUser) as User,
36
    );
37
  }
38
39
  public subscribeUserDataFromStorageByFirebaseUser(
40
    user: FirebaseUser,
41
  ): Observable<User | null> {
42
    this.user.next(this.config.mapFirebaseUserToStorageFunc(user) as User);
43
    return this.user;
44
  }
45
}
46