Total Complexity | 4 |
Complexity/F | 1 |
Lines of Code | 37 |
Function Count | 4 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
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 |