From 5ef9749dadb3b7afd7e1e15b14fcbefb8eea5d21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 24 Mar 2022 16:22:09 +0200 Subject: [PATCH] Fixed refresh data after dictionary add / delete order --- .../entity-services/dictionary.service.ts | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts index 50a9461a7..54a0f3296 100644 --- a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts @@ -2,7 +2,7 @@ import { Injectable, Injector } from '@angular/core'; import { firstValueFrom, forkJoin, Observable, of, throwError } from 'rxjs'; import { EntitiesService, List, QueryParam, RequiredParam, Toaster, Validate } from '@iqser/common-ui'; import { Dictionary, DictionaryEntryType, DictionaryEntryTypes, IColors, IDictionary, IUpdateDictionary } from '@red/domain'; -import { catchError, map, mapTo, switchMap, tap } from 'rxjs/operators'; +import { catchError, map, switchMap, tap } from 'rxjs/operators'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DossierTemplateStatsService } from './dossier-template-stats.service'; import { DictionariesMapService } from './dictionaries-map.service'; @@ -41,16 +41,16 @@ export class DictionaryService extends EntitiesService * Deletes entry types */ @Validate() - deleteDictionaries(@RequiredParam() body: List, @RequiredParam() dossierTemplateId: string, dossierId?: string) { + deleteDictionaries( + @RequiredParam() dictionaryIds: List, + @RequiredParam() dossierTemplateId: string, + dossierId?: string, + ): Observable { const queryParams = dossierId ? [{ key: 'dossierId', value: dossierId }] : undefined; const url = `${this._defaultModelPath}/type/${dossierTemplateId}/delete`; - return this._post(body, url, queryParams).pipe( - switchMap(dictionaries => - forkJoin([ - this._dossierTemplateStatsService.getFor([dossierTemplateId]), - this.loadDictionaryDataForDossierTemplate(dossierTemplateId), - ]).pipe(mapTo(dictionaries)), - ), + return this._post(dictionaryIds, url, queryParams).pipe( + switchMap(() => this.loadDictionaryDataForDossierTemplate(dossierTemplateId)), + switchMap(() => this._dossierTemplateStatsService.getFor([dossierTemplateId])), ); } @@ -95,17 +95,13 @@ export class DictionaryService extends EntitiesService @RequiredParam() dossierTemplateId: string, @RequiredParam() type: string, dossierId?: string, - ): Observable { + ): Observable { const url = `${this._defaultModelPath}/type/${type}/${dossierTemplateId}`; const queryParams = dossierId ? [{ key: 'dossierId', value: dossierId }] : undefined; return this._post(body, url, queryParams).pipe( catchError((error: HttpErrorResponse) => this.#addUpdateDictionaryErrorToast(error)), - switchMap(() => - forkJoin([ - this._dossierTemplateStatsService.getFor([dossierTemplateId]), - this.loadDictionaryDataForDossierTemplate(dossierTemplateId), - ]).pipe(map(() => this._dictionariesMapService.get(dossierTemplateId, type))), - ), + switchMap(() => this.loadDictionaryDataForDossierTemplate(dossierTemplateId)), + switchMap(() => this._dossierTemplateStatsService.getFor([dossierTemplateId])), ); } @@ -123,17 +119,12 @@ export class DictionaryService extends EntitiesService * Creates entry type with colors, hint and caseInsensitive */ @Validate() - addDictionary(@RequiredParam() dictionary: IDictionary, dossierId?: string): Observable { + addDictionary(@RequiredParam() dictionary: IDictionary, dossierId?: string): Observable { const queryParams = dossierId ? [{ key: 'dossierId', value: dossierId }] : undefined; return this._post(dictionary, `${this._defaultModelPath}/type`, queryParams).pipe( catchError((error: HttpErrorResponse) => this.#addUpdateDictionaryErrorToast(error)), - switchMap(() => - forkJoin([ - this._dossierTemplateStatsService.getFor([dictionary.dossierTemplateId]), - this.loadDictionaryDataForDossierTemplate(dictionary.dossierTemplateId), - ]), - ), - map(() => this._dictionariesMapService.get(dictionary.dossierTemplateId, dictionary.type)), + switchMap(() => this.loadDictionaryDataForDossierTemplate(dictionary.dossierTemplateId)), + switchMap(() => this._dossierTemplateStatsService.getFor([dictionary.dossierTemplateId])), ); }