From 90379d331e66789e4264364371c52ff9f7f358fb Mon Sep 17 00:00:00 2001 From: Jason Wall Date: Wed, 25 Nov 2020 10:58:25 -0500 Subject: [PATCH] clean up the code a bit --- src/src/app/services/migration0to1.service.ts | 2 +- src/src/app/services/storage.service.ts | 91 +++++++------------ 2 files changed, 36 insertions(+), 57 deletions(-) diff --git a/src/src/app/services/migration0to1.service.ts b/src/src/app/services/migration0to1.service.ts index 8750d436..26e417fd 100644 --- a/src/src/app/services/migration0to1.service.ts +++ b/src/src/app/services/migration0to1.service.ts @@ -35,7 +35,7 @@ export class MigrationVersion0to1 { const savedPages = this.toSavedPages(v); const currentCards = this.toCurrentCards(v); - storage.setRemote( + storage.setRemoteData( settings, savedPages, { diff --git a/src/src/app/services/storage.service.ts b/src/src/app/services/storage.service.ts index 4c6642e1..f7fc83bf 100644 --- a/src/src/app/services/storage.service.ts +++ b/src/src/app/services/storage.service.ts @@ -100,45 +100,48 @@ export class StorageService extends SubscriberBase { super(); } - //#region Remote - initRemote(user: User) { // do the necessary migration steps. this.handleMigration(user); // initialize the remote store monitoring. This is where we listen for changes on the remote location. - - this.monitorRemote( - this.settingsPath, - user, - (ro) => { - this.settingsRemoteObject = ro; - }, - (data) => { - this.appService.updateSettings(data); - } + this.settingsRemoteObject = this.remote.object>(`/${this.settingsPath}/${user.uid}`); + this.addSubscription( + this.settingsRemoteObject + .valueChanges() // when the value changes + .subscribe((remoteData) => { + if (!isNullOrUndefined(remoteData) && !isNullOrUndefined(remoteData.value)) { + // update the app state with remote data if it isn't null + // console.log('Data recieved from remote store', remoteData); + this.appService.updateSettings(remoteData); + } + }) ); - this.monitorRemote( - this.savedPagesPath, - user, - (ro) => { - this.savedPagesRemoteObject = ro; - }, - (data) => { - this.appService.updateSavedPages(data); - } + this.savedPagesRemoteObject = this.remote.object>(`/${this.savedPagesPath}/${user.uid}`); + this.addSubscription( + this.savedPagesRemoteObject + .valueChanges() // when the value changes + .subscribe((remoteData) => { + if (!isNullOrUndefined(remoteData) && !isNullOrUndefined(remoteData.value)) { + // update the app state with remote data if it isn't null + // console.log('Data recieved from remote store', remoteData); + this.appService.updateSavedPages(remoteData); + } + }) ); - this.monitorRemote( - this.noteItemsPath, - user, - (ro) => { - this.noteItemsRemoteObject = ro; - }, - (data) => { - this.appService.updateNotes(data); - } + this.noteItemsRemoteObject = this.remote.object>(`/${this.noteItemsPath}/${user.uid}`); + this.addSubscription( + this.noteItemsRemoteObject + .valueChanges() // when the value changes + .subscribe((remoteData) => { + if (!isNullOrUndefined(remoteData) && !isNullOrUndefined(remoteData.value)) { + // update the app state with remote data if it isn't null + // console.log('Data recieved from remote store', remoteData); + this.appService.updateNotes(remoteData); + } + }) ); // handle cards differently, because there is a setting that changes the behavior of how you handle @@ -156,31 +159,6 @@ export class StorageService extends SubscriberBase { ); } - private monitorRemote( - path: string, - user: User, - setRemoteObject: (remoteObject: AngularFireObject>) => void, - action: (storable) => void - ) { - const remoteObject = this.remote.object>(`/${path}/${user.uid}`); - setRemoteObject(remoteObject); - - // display settings - this.addSubscription( - remoteObject - .valueChanges() // when the value changes - .subscribe((remoteData) => { - if (!isNullOrUndefined(remoteData) && !isNullOrUndefined(remoteData.value)) { - // update the app state with remote data if it isn't null - // console.log('Data recieved from remote store', remoteData); - action(remoteData); - } - }) - ); - } - - //#endregion - //#region Local /* @@ -330,6 +308,7 @@ export class StorageService extends SubscriberBase { }) ); } + //#endregion //#region Migrations @@ -348,7 +327,7 @@ export class StorageService extends SubscriberBase { }); } - public setRemote( + public setRemoteData( settings: IStorable, savedPages: IStorable, notes: IStorable,