RED-6033: Show error message on update profile (400 & 409)

This commit is contained in:
Adina Țeudan 2023-01-19 07:32:18 +02:00
parent 1f9bace6a6
commit b0bea9fefc

View File

@ -3,7 +3,7 @@ import { KeycloakService } from 'keycloak-angular';
import { BehaviorSubject, firstValueFrom, Observable, throwError } from 'rxjs';
import { catchError, tap } from 'rxjs/operators';
import { BASE_HREF, List, mapEach, RequiredParam, Validate } from '../../utils';
import { QueryParam, Toaster } from '../../services';
import { IqserConfigService, QueryParam, Toaster } from '../../services';
import { CacheApiService } from '../../caching';
import { EntitiesService } from '../../listing';
import { IIqserUser } from '../types/user.response';
@ -15,7 +15,6 @@ import { KeycloakProfile } from 'keycloak-js';
import { IqserUser } from '../iqser-user.model';
import { IqserPermissionsService, IqserRolesService } from '../../permissions';
import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';
import { IqserConfigService } from '../../services';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
@Injectable()
@ -128,11 +127,17 @@ export abstract class IqserUserService<
@Validate()
updateMyProfile<T = IMyProfileUpdateRequest>(@RequiredParam() body: T) {
const showToast = (error: HttpErrorResponse) => {
if (error.status === HttpStatusCode.BadRequest) {
const { message } = error.error;
this._toaster.error(_('update-profile.errors.bad-request'), { params: { message } });
} else {
this._toaster.error(_('update-profile.errors.generic'));
switch (error.status) {
case HttpStatusCode.BadRequest:
case HttpStatusCode.Conflict: {
const { message } = error.error;
this._toaster.error(_('update-profile.errors.bad-request'), { params: { message } });
break;
}
default: {
this._toaster.error(_('update-profile.errors.generic'));
break;
}
}
return throwError(() => error);
};