Fixed refresh data after dictionary add / delete order

This commit is contained in:
Adina Țeudan 2022-03-24 16:22:09 +02:00
parent d16fc45426
commit 5ef9749dad

View File

@ -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<Dictionary, IDictionary>
* Deletes entry types
*/
@Validate()
deleteDictionaries(@RequiredParam() body: List, @RequiredParam() dossierTemplateId: string, dossierId?: string) {
deleteDictionaries(
@RequiredParam() dictionaryIds: List,
@RequiredParam() dossierTemplateId: string,
dossierId?: string,
): Observable<unknown> {
const queryParams = dossierId ? [{ key: 'dossierId', value: dossierId }] : undefined;
const url = `${this._defaultModelPath}/type/${dossierTemplateId}/delete`;
return this._post<unknown>(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<Dictionary, IDictionary>
@RequiredParam() dossierTemplateId: string,
@RequiredParam() type: string,
dossierId?: string,
): Observable<Dictionary> {
): Observable<unknown> {
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<Dictionary, IDictionary>
* Creates entry type with colors, hint and caseInsensitive
*/
@Validate()
addDictionary(@RequiredParam() dictionary: IDictionary, dossierId?: string): Observable<Dictionary> {
addDictionary(@RequiredParam() dictionary: IDictionary, dossierId?: string): Observable<unknown> {
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])),
);
}