Skip to content
Snippets Groups Projects
Commit 99e430ff authored by Alicia.DeDiosFuente's avatar Alicia.DeDiosFuente Committed by Florent Poittevin
Browse files

fix: catch error from validation errors when uploading a file

parent b9e20c96
No related branches found
No related tags found
1 merge request!116fix: catch error from validation errors when uploading a file
......@@ -76,6 +76,7 @@ import {UploadNameSpace} from "./upload-namespace.model";
import {UploadOptions} from "./upload-options.model";
import {UploadStateModel} from "./upload-state.model";
import {UploadAction} from "./upload.action";
import {StoreUtil} from "../../../utils/stores/store.util";
export const defaultUploadStateInitValue: <TResourceType extends SolidifyFileUpload, UFileUploadWrapper extends FileUploadWrapper = FileUploadWrapper> () => UploadStateModel<TResourceType, UFileUploadWrapper> = () =>
({
......@@ -178,8 +179,9 @@ export abstract class UploadState<TStateModel extends BaseStateModel, TResource
errorDto = error.error;
}
ctx.dispatch(UploadActionHelper.uploadFileFail(this._nameSpace, action, uploadFileStatus, errorDto));
throw new SolidifyStateError(this, error);
throw error;
}),
StoreUtil.catchError(ctx as any, this._notificationService),
);
}
......
......@@ -504,6 +504,19 @@ export class StoreUtil {
});
}
static catchError<T>(ctx: SolidifyStateContext<ResourceStateModel<T>>, notifierService: NotifierService): MonoTypeOperatorFunction<T> {
return catchError((error: SolidifyHttpErrorResponseModel) => {
//check if there are validations errors, if so, show them
if (isNonEmptyArray(error.error.validationErrors)) {
this.notifyError(notifierService, error.error.validationErrors[0].errorMessages[0]);
//StoreUtil.catchValidationErrors(ctx as any, null, this._notificationService, false);
}
throw error;
});
}
private static _applyValidationErrorsOnFormControl<T>(modelFormControlEvent: ModelFormControlEvent<T>, validationErrors: ValidationErrorDto[], autoScrollToFirstValidationError: boolean): ValidationErrorDto[] {
Object.keys(modelFormControlEvent.formControl.value).forEach(fieldName => {
const formControl = modelFormControlEvent.formControl.get(fieldName);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment