provider record service: add currentProviderId
authorGalen Charlton <gmc@equinoxinitiative.org>
Wed, 25 Mar 2020 15:43:32 +0000 (11:43 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 25 Mar 2020 15:43:32 +0000 (11:43 -0400)
This works around some race conditions fetching the current
provider upon initialization; we should fix this so that
current() can account for in-flight initialization or
refreshes.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts

index 962a71b..857891c 100644 (file)
@@ -23,6 +23,7 @@ export class ProviderRecord {
 export class ProviderRecordService {
 
     private currentProvider: ProviderRecord;
+    private currentProviderId: number = null;
 
     constructor(
         private idl: IdlService,
@@ -33,7 +34,8 @@ export class ProviderRecordService {
     }
 
     getProviderRecord(id: number): Observable<ProviderRecord> {
-        console.debug('fetching provider');
+        console.debug('fetching provider ' + id);
+        this.currentProviderId = id;
         return this.pcrud.search('acqpro', { id: id },
             {
                 flesh: 1,
@@ -65,8 +67,8 @@ export class ProviderRecordService {
     }
 
     refreshCurrent(): Promise<any> {
-        if (this.currentProvider) {
-            return this.fetch(this.currentProvider.id);
+        if (this.currentProviderId) {
+            return this.fetch(this.currentProviderId);
         } else {
             return Promise.reject();
         }