Passed
Push — master ( 67261f...67f253 )
by Miloš
02:58
created

subscribeUserDataFromStorageByFirebaseUser   A

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
1
import { AngularFireAuth } from "@angular/fire/auth";
2
import { User as FirebaseUser } from "firebase";
3
import { Observable } from "rxjs";
4
import { UniFirebaseLoginConfig } from "../config/uni-firebase-login-config";
5
import { UniFirebaseLoginConfigProvider } from "../config/uni-firebase-login-config-provider";
6
import { UserModel } from "../model/user-model";
7
import { IStorageProvider } from "./i-storage-provider";
8
9
export abstract class AbstractStorage<User extends UserModel = UserModel>
10
    implements IStorageProvider<User> {
11
    protected config: UniFirebaseLoginConfig;
12
13
    protected constructor(
14
        protected angularFireAuth: AngularFireAuth,
15
        configProvider: UniFirebaseLoginConfigProvider,
16
    ) {
17
        this.config = configProvider.config;
18
    }
19
20
    public abstract async updateStoredDataByUser(user: User): Promise<void>;
21
22
    public abstract async updateStoredDataByFirebaseUser(
23
        firebaseUser: FirebaseUser,
24
    ): Promise<void>;
25
26
    public abstract subscribeUserDataFromStorageByFirebaseUser(
27
        user: FirebaseUser,
28
    ): Observable<User | null>;
29
30
    /**
31
     * Override this method if you want to use custom model class
32
     */
33
    protected getNewUser(): User {
34
        return this.config.userFactoryFunc() as User;
35
    }
36
}
37