Fixed refresh data after dictionary add / delete order
This commit is contained in:
parent
d16fc45426
commit
5ef9749dad
@ -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])),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user