diff --git a/src/app/core/cache/builders/remote-data-build.service.ts b/src/app/core/cache/builders/remote-data-build.service.ts index 7582c29233..d24f54571e 100644 --- a/src/app/core/cache/builders/remote-data-build.service.ts +++ b/src/app/core/cache/builders/remote-data-build.service.ts @@ -100,7 +100,11 @@ export class RemoteDataBuildService { isSuccessful = resEntry.response.isSuccessful; const errorMessage = isSuccessful === false ? (resEntry.response as ErrorResponse).errorMessage : undefined; if (hasValue(errorMessage)) { - error = new RemoteDataError((resEntry.response as ErrorResponse).statusText, errorMessage); + error = new RemoteDataError( + (resEntry.response as ErrorResponse).statusCode, + (resEntry.response as ErrorResponse).statusText, + errorMessage + ); } } return new RemoteData( @@ -247,7 +251,16 @@ export class RemoteDataBuildService { }).filter((c: string) => hasValue(c)) .join(', '); - const error = new RemoteDataError(statusText, errorMessage); + const statusCode: number = arr + .map((d: RemoteData) => d.error) + .map((e: RemoteDataError, idx: number) => { + if (hasValue(e)) { + return e.statusCode; + } + }).filter((c: number) => hasValue(c)) + .reduce((acc, status) => status, undefined); + + const error = new RemoteDataError(statusCode, statusText, errorMessage); const payload: T[] = arr.map((d: RemoteData) => d.payload); diff --git a/src/app/core/data/remote-data-error.ts b/src/app/core/data/remote-data-error.ts index d2a0dd5add..9291bc5447 100644 --- a/src/app/core/data/remote-data-error.ts +++ b/src/app/core/data/remote-data-error.ts @@ -1,5 +1,6 @@ export class RemoteDataError { constructor( + public statusCode: number, public statusText: string, public message: string ) {