Only log errors for DspaceRestService.get

When refactoring to meet the rxjs/no-implicit-any-catch ESLint rule, I'd made it so errors were logged for DspaceRestService.request calls as well, making it a lot more noisy
The console.log in .get is explicitly required by tests though
This commit is contained in:
Yury Bondarenko
2024-03-08 10:52:24 +01:00
parent 86885f7dce
commit 33d5253d47

View File

@@ -3,6 +3,7 @@ import {
HttpErrorResponse,
HttpHeaders,
HttpParams,
HttpResponse,
} from '@angular/common/http';
import { Injectable } from '@angular/core';
import {
@@ -53,7 +54,21 @@ export class DspaceRestService {
* An Observable<string> containing the response from the server
*/
get(absoluteURL: string): Observable<RawRestResponse> {
return this.request(RestRequestMethod.GET, absoluteURL);
const requestOptions = {
observe: 'response' as any,
headers: new HttpHeaders({ 'Content-Type': DEFAULT_CONTENT_TYPE }),
};
return this.http.get(absoluteURL, requestOptions).pipe(
map((res: HttpResponse<any>) => ({
payload: res.body,
statusCode: res.status,
statusText: res.statusText,
})),
catchError((err: unknown) => observableThrowError(() => {
console.log('Error: ', err);
return this.handleHttpError(err);
})),
);
}
/**
@@ -110,20 +125,7 @@ export class DspaceRestService {
statusText: res.statusText,
})),
catchError((err: unknown) => observableThrowError(() => {
console.log('Error: ', err);
if (err instanceof HttpErrorResponse) {
const error = new RequestError(
(isNotEmpty(err?.error?.message)) ? err.error.message : err.message,
);
error.statusCode = err.status;
error.statusText = err.statusText;
return error;
} else {
console.error('Cannot construct RequestError from', err);
return err;
}
return this.handleHttpError(err);
})),
);
}
@@ -149,4 +151,20 @@ export class DspaceRestService {
return form;
}
protected handleHttpError(err: unknown): RequestError | unknown {
if (err instanceof HttpErrorResponse) {
const error = new RequestError(
(isNotEmpty(err?.error?.message)) ? err.error.message : err.message,
);
error.statusCode = err.status;
error.statusText = err.statusText;
return error;
} else {
console.error('Cannot construct RequestError from', err);
return err;
}
}
}