TSK-1248 removed unnecessary get call from saveClassification action
This commit is contained in:
parent
8434bde759
commit
7b5927d281
|
|
@ -1,5 +1,5 @@
|
||||||
import { Action, NgxsAfterBootstrap, State, StateContext } from '@ngxs/store';
|
import { Action, NgxsAfterBootstrap, State, StateContext } from '@ngxs/store';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable, of } from 'rxjs';
|
||||||
import { take, tap } from 'rxjs/operators';
|
import { take, tap } from 'rxjs/operators';
|
||||||
import { CategoriesResponse,
|
import { CategoriesResponse,
|
||||||
ClassificationCategoriesService } from '../../services/classification-categories/classification-categories.service';
|
ClassificationCategoriesService } from '../../services/classification-categories/classification-categories.service';
|
||||||
|
|
@ -28,15 +28,16 @@ export class ClassificationState implements NgxsAfterBootstrap {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Action(SetSelectedClassificationType)
|
@Action(SetSelectedClassificationType)
|
||||||
setSelectedClassificationType(ctx: StateContext<ClassificationStateModel>, action: SetSelectedClassificationType): void {
|
setSelectedClassificationType(ctx: StateContext<ClassificationStateModel>, action: SetSelectedClassificationType): Observable<null> {
|
||||||
const state: ClassificationStateModel = ctx.getState();
|
const state: ClassificationStateModel = ctx.getState();
|
||||||
if (state.classificationTypes[action.selectedType]) {
|
if (state.classificationTypes[action.selectedType]) {
|
||||||
ctx.patchState({ selectedClassificationType: action.selectedType });
|
ctx.patchState({ selectedClassificationType: action.selectedType });
|
||||||
}
|
}
|
||||||
|
return of(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Action(SelectClassification)
|
@Action(SelectClassification)
|
||||||
selectClassification(ctx: StateContext<ClassificationStateModel>, action: SelectClassification): Observable<any> | void {
|
selectClassification(ctx: StateContext<ClassificationStateModel>, action: SelectClassification): Observable<any|null> {
|
||||||
if (typeof action.classificationId !== 'undefined') {
|
if (typeof action.classificationId !== 'undefined') {
|
||||||
return this.classificationsService.getClassification(action.classificationId).pipe(take(1), tap(
|
return this.classificationsService.getClassification(action.classificationId).pipe(take(1), tap(
|
||||||
selectedClassification => {
|
selectedClassification => {
|
||||||
|
|
@ -47,16 +48,16 @@ export class ClassificationState implements NgxsAfterBootstrap {
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
return null;
|
return of(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Action(DeselectClassification)
|
@Action(DeselectClassification)
|
||||||
deselectClassification(ctx: StateContext<ClassificationStateModel>): Observable<any> | void {
|
deselectClassification(ctx: StateContext<ClassificationStateModel>): Observable<null> {
|
||||||
ctx.patchState({
|
ctx.patchState({
|
||||||
selectedClassification: undefined,
|
selectedClassification: undefined,
|
||||||
action: null
|
action: null
|
||||||
});
|
});
|
||||||
return null;
|
return of(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Action(InitializeStore)
|
@Action(InitializeStore)
|
||||||
|
|
@ -106,22 +107,19 @@ export class ClassificationState implements NgxsAfterBootstrap {
|
||||||
@Action(SaveClassification)
|
@Action(SaveClassification)
|
||||||
saveClassification(ctx: StateContext<ClassificationStateModel>, action: SaveClassification): Observable<any> {
|
saveClassification(ctx: StateContext<ClassificationStateModel>, action: SaveClassification): Observable<any> {
|
||||||
return this.classificationsService.putClassification(action.classification).pipe(
|
return this.classificationsService.putClassification(action.classification).pipe(
|
||||||
// TODO remove this call when backend is fixed modified dates are not same
|
take(1), tap(savedClassification => {
|
||||||
take(1), tap(retClassification => this.classificationsService.getClassification(retClassification.classificationId).subscribe(
|
|
||||||
savedClassification => {
|
|
||||||
ctx.patchState({
|
ctx.patchState({
|
||||||
classifications: ctx.getState().classifications.map(currentClassification => {
|
classifications: ctx.getState().classifications.map(currentClassification => {
|
||||||
if (currentClassification.classificationId === savedClassification.classificationId) { // TODO there has to be a better way
|
if (currentClassification.classificationId === savedClassification.classificationId) {
|
||||||
return savedClassification;
|
return savedClassification;
|
||||||
}
|
}
|
||||||
return currentClassification;
|
return currentClassification;
|
||||||
}),
|
}),
|
||||||
selectedClassification: savedClassification
|
selectedClassification: savedClassification
|
||||||
});
|
});
|
||||||
}
|
}), tap(() => this.classificationsService.getClassifications(
|
||||||
)), tap(() => this.classificationsService.getClassifications(
|
|
||||||
ctx.getState().selectedClassificationType
|
ctx.getState().selectedClassificationType
|
||||||
).subscribe( // TODO find a better way because 3 calls are way too much
|
).subscribe(
|
||||||
classifications => {
|
classifications => {
|
||||||
ctx.patchState({
|
ctx.patchState({
|
||||||
classifications
|
classifications
|
||||||
|
|
@ -141,12 +139,13 @@ export class ClassificationState implements NgxsAfterBootstrap {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Action(SetActiveAction)
|
@Action(SetActiveAction)
|
||||||
setActiveAction(ctx: StateContext<ClassificationStateModel>, action: SetActiveAction): void {
|
setActiveAction(ctx: StateContext<ClassificationStateModel>, action: SetActiveAction): Observable<null> {
|
||||||
if (action.action === ACTION.CREATE) {
|
if (action.action === ACTION.CREATE) {
|
||||||
ctx.patchState({ selectedClassification: new ClassificationDefinition(), action: action.action });
|
ctx.patchState({ selectedClassification: new ClassificationDefinition(), action: action.action });
|
||||||
} else {
|
} else {
|
||||||
ctx.patchState({ action: action.action });
|
ctx.patchState({ action: action.action });
|
||||||
}
|
}
|
||||||
|
return of(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Action(RemoveSelectedClassification)
|
@Action(RemoveSelectedClassification)
|
||||||
|
|
@ -173,8 +172,9 @@ export class ClassificationState implements NgxsAfterBootstrap {
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialize after Startup service has configured the taskanaRestUrl properly.
|
// initialize after Startup service has configured the taskanaRestUrl properly.
|
||||||
ngxsAfterBootstrap(ctx: StateContext<ClassificationStateModel>): void {
|
ngxsAfterBootstrap(ctx: StateContext<ClassificationStateModel>): Observable<null> {
|
||||||
ctx.dispatch(new InitializeStore());
|
ctx.dispatch(new InitializeStore());
|
||||||
|
return of(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue