diff --git a/src/app/_helpers/global-error-handler.ts b/src/app/_helpers/global-error-handler.ts index d074f12..0127730 100644 --- a/src/app/_helpers/global-error-handler.ts +++ b/src/app/_helpers/global-error-handler.ts @@ -87,3 +87,10 @@ export class GlobalErrorHandler extends ErrorHandler { return isWarning; } } + +export function rejectBody(error): { status: any; statusText: any } { + return { + status: error.status, + statusText: error.statusText, + }; +} diff --git a/src/app/_helpers/http-getter.ts b/src/app/_helpers/http-getter.ts index d06077a..4c1719e 100644 --- a/src/app/_helpers/http-getter.ts +++ b/src/app/_helpers/http-getter.ts @@ -1,3 +1,5 @@ +import { rejectBody } from '@app/_helpers/global-error-handler'; + function HttpGetter(): void {} HttpGetter.prototype.get = (filename) => @@ -6,7 +8,7 @@ HttpGetter.prototype.get = (filename) => if (response.ok) { resolve(response.json()); } else { - reject(`failed with status ${response.status} : ${response.statusText}`); + reject(rejectBody(response)); } return; }); diff --git a/src/app/_services/auth.service.ts b/src/app/_services/auth.service.ts index faf257f..d29bc43 100644 --- a/src/app/_services/auth.service.ts +++ b/src/app/_services/auth.service.ts @@ -6,7 +6,7 @@ import { LoggingService } from '@app/_services/logging.service'; import { MutableKeyStore, MutablePgpKeyStore } from '@app/_pgp'; import { ErrorDialogService } from '@app/_services/error-dialog.service'; import { HttpClient } from '@angular/common/http'; -import { HttpError } from '@app/_helpers/global-error-handler'; +import { HttpError, rejectBody } from '@app/_helpers/global-error-handler'; @Injectable({ providedIn: 'root', @@ -50,10 +50,7 @@ export class AuthService { }; fetch(environment.cicMetaUrl, options).then((response) => { if (response.status === 401) { - return reject({ - status: response.status, - statusText: response.statusText, - }); + return reject(rejectBody(response)); } return resolve(true); }); @@ -73,10 +70,7 @@ export class AuthService { }; fetch(environment.cicMetaUrl, options).then((response) => { if (response.status === 401) { - return reject({ - status: response.status, - statusText: response.statusText, - }); + return reject(rejectBody(response)); } this.sessionToken = response.headers.get('Token'); sessionStorage.setItem(btoa('CICADA_SESSION_TOKEN'), this.sessionToken); @@ -94,10 +88,7 @@ export class AuthService { return resolve(hobaParseChallengeHeader(authHeader)); } if (!response.ok) { - return reject({ - status: response.status, - statusText: response.statusText, - }); + return reject(rejectBody(response)); } }); }); @@ -206,12 +197,14 @@ export class AuthService { } async getPublicKeys(): Promise { - return await fetch(environment.publicKeysUrl).then((res) => { - if (!res.ok) { - // TODO does angular recommend an error interface? - throw Error(`${res.statusText} - ${res.status}`); - } - return res.text(); + return new Promise((resolve, reject) => { + fetch(environment.publicKeysUrl).then((res) => { + if (!res.ok) { + // TODO does angular recommend an error interface? + return reject(rejectBody(res)); + } + return resolve(res.text()); + }); }); }