From 4328499e620e921b5029d20d3bd4f96388a7b0f9 Mon Sep 17 00:00:00 2001 From: John Schulz Date: Mon, 29 Jun 2020 17:08:50 -0400 Subject: [PATCH] Make custom errors by extending Error (#69966) Co-authored-by: Elastic Machine --- .../plugins/ingest_manager/server/errors.ts | 22 +++++++------------ .../server/services/epm/registry/requests.ts | 10 +++------ 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/errors.ts b/x-pack/plugins/ingest_manager/server/errors.ts index 193a65fd8df7ff..ee03b3faf79d13 100644 --- a/x-pack/plugins/ingest_manager/server/errors.ts +++ b/x-pack/plugins/ingest_manager/server/errors.ts @@ -4,26 +4,20 @@ * you may not use this file except in compliance with the Elastic License. */ +/* eslint-disable max-classes-per-file */ export class IngestManagerError extends Error { - public type: IngestManagerErrorType; - public message: string; - - constructor(type: IngestManagerErrorType, message: string) { + constructor(message?: string) { super(message); - this.type = type; - this.message = message; + this.name = this.constructor.name; // for stack traces } } export const getHTTPResponseCode = (error: IngestManagerError): number => { - switch (error.type) { - case IngestManagerErrorType.RegistryError: - return 502; // Bad Gateway - default: - return 400; // Bad Request + if (error instanceof RegistryError) { + return 502; // Bad Gateway + } else { + return 400; // Bad Request } }; -export enum IngestManagerErrorType { - RegistryError, -} +export class RegistryError extends IngestManagerError {} diff --git a/x-pack/plugins/ingest_manager/server/services/epm/registry/requests.ts b/x-pack/plugins/ingest_manager/server/services/epm/registry/requests.ts index 6d039345e31c35..abf77ddddfd7ab 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/registry/requests.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/registry/requests.ts @@ -6,7 +6,7 @@ import fetch, { Response } from 'node-fetch'; import { streamToString } from './streams'; -import { IngestManagerError, IngestManagerErrorType } from '../../../errors'; +import { RegistryError } from '../../../errors'; export async function getResponse(url: string): Promise { try { @@ -14,16 +14,12 @@ export async function getResponse(url: string): Promise { if (response.ok) { return response; } else { - throw new IngestManagerError( - IngestManagerErrorType.RegistryError, + throw new RegistryError( `Error connecting to package registry at ${url}: ${response.statusText}` ); } } catch (e) { - throw new IngestManagerError( - IngestManagerErrorType.RegistryError, - `Error connecting to package registry at ${url}: ${e.message}` - ); + throw new RegistryError(`Error connecting to package registry at ${url}: ${e.message}`); } }