diff --git a/redisinsight/api/src/constants/custom-error-codes.ts b/redisinsight/api/src/constants/custom-error-codes.ts index 3565a3d25d..52e4bf1538 100644 --- a/redisinsight/api/src/constants/custom-error-codes.ts +++ b/redisinsight/api/src/constants/custom-error-codes.ts @@ -77,4 +77,5 @@ export enum CustomErrorCodes { RdiResetPipelineFailure = 11_407, RdiStartPipelineFailure = 11_408, RdiStopPipelineFailure = 11_409, + RdiBadRequest = 11_410, } diff --git a/redisinsight/api/src/modules/rdi/exceptions/index.ts b/redisinsight/api/src/modules/rdi/exceptions/index.ts index 86282605ee..98701cab01 100644 --- a/redisinsight/api/src/modules/rdi/exceptions/index.ts +++ b/redisinsight/api/src/modules/rdi/exceptions/index.ts @@ -1,5 +1,5 @@ export * from './rdi-deploy-failed.exception'; -export * from './rdi-pipiline.error.handler'; +export * from './rdi-pipeline.error.handler'; export * from './rdi-pipeline.internal-server-error.exception'; export * from './rdi-pipeline.not-found.exception'; export * from './rdi-pipeline.unauthorized.exception'; diff --git a/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.bad-request.exception.ts b/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.bad-request.exception.ts new file mode 100644 index 0000000000..01aa5e2fe4 --- /dev/null +++ b/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.bad-request.exception.ts @@ -0,0 +1,24 @@ +import { + HttpException, + HttpExceptionOptions, + HttpStatus, +} from '@nestjs/common'; +import { CustomErrorCodes } from 'src/constants'; +import ERROR_MESSAGES from 'src/constants/error-messages'; + +export class RdiPipelineBadRequestException extends HttpException { + constructor( + message = ERROR_MESSAGES.BAD_REQUEST, + options?: HttpExceptionOptions & { details?: unknown }, + ) { + const response = { + message, + statusCode: HttpStatus.BAD_REQUEST, + error: 'RdiBadRequest', + errorCode: CustomErrorCodes.RdiBadRequest, + detail: options?.details, + }; + + super(response, response.statusCode, options); + } +} diff --git a/redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.spec.ts b/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.spec.ts similarity index 98% rename from redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.spec.ts rename to redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.spec.ts index 1ba362d65c..b3de1161af 100644 --- a/redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.spec.ts +++ b/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.spec.ts @@ -8,7 +8,7 @@ import { } from 'src/modules/rdi/exceptions'; import { CustomErrorCodes } from 'src/constants'; import errorMessages from 'src/constants/error-messages'; -import { wrapRdiPipelineError } from './rdi-pipiline.error.handler'; +import { wrapRdiPipelineError } from './rdi-pipeline.error.handler'; import { RdiPipelineForbiddenException } from './rdi-pipeline.forbidden.exception'; describe('wrapRdiPipelineError', () => { diff --git a/redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.ts b/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.ts similarity index 88% rename from redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.ts rename to redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.ts index 8d27c18a5f..f7429a11c1 100644 --- a/redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.ts +++ b/redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.ts @@ -7,6 +7,7 @@ import { RdiPipelineValidationException, } from 'src/modules/rdi/exceptions'; import { RdiPipelineForbiddenException } from './rdi-pipeline.forbidden.exception'; +import { RdiPipelineBadRequestException } from "src/modules/rdi/exceptions/rdi-pipeline.bad-request.exception"; export const parseErrorMessage = (error: AxiosError): string => { const data = error.response?.data; @@ -33,6 +34,8 @@ export const wrapRdiPipelineError = (error: AxiosError): HttpException => { if (response) { const errorOptions = response?.data?.detail; switch (response?.status) { + case 400: + return new RdiPipelineBadRequestException(message, errorOptions); case 401: return new RdiPipelineUnauthorizedException(message, errorOptions); case 403: