Skip to content

Commit e1adff4

Browse files
authored
Add RDI API 400 error handler (#5159)
* Add 400 Bad Request handler for RDI API exceptions * Fix typo
1 parent aeb375b commit e1adff4

File tree

5 files changed

+30
-2
lines changed

5 files changed

+30
-2
lines changed

redisinsight/api/src/constants/custom-error-codes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,5 @@ export enum CustomErrorCodes {
7777
RdiResetPipelineFailure = 11_407,
7878
RdiStartPipelineFailure = 11_408,
7979
RdiStopPipelineFailure = 11_409,
80+
RdiBadRequest = 11_410,
8081
}

redisinsight/api/src/modules/rdi/exceptions/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export * from './rdi-deploy-failed.exception';
2-
export * from './rdi-pipiline.error.handler';
2+
export * from './rdi-pipeline.error.handler';
33
export * from './rdi-pipeline.internal-server-error.exception';
44
export * from './rdi-pipeline.not-found.exception';
55
export * from './rdi-pipeline.unauthorized.exception';
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import {
2+
HttpException,
3+
HttpExceptionOptions,
4+
HttpStatus,
5+
} from '@nestjs/common';
6+
import { CustomErrorCodes } from 'src/constants';
7+
import ERROR_MESSAGES from 'src/constants/error-messages';
8+
9+
export class RdiPipelineBadRequestException extends HttpException {
10+
constructor(
11+
message = ERROR_MESSAGES.BAD_REQUEST,
12+
options?: HttpExceptionOptions & { details?: unknown },
13+
) {
14+
const response = {
15+
message,
16+
statusCode: HttpStatus.BAD_REQUEST,
17+
error: 'RdiBadRequest',
18+
errorCode: CustomErrorCodes.RdiBadRequest,
19+
detail: options?.details,
20+
};
21+
22+
super(response, response.statusCode, options);
23+
}
24+
}

redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.spec.ts renamed to redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from 'src/modules/rdi/exceptions';
99
import { CustomErrorCodes } from 'src/constants';
1010
import errorMessages from 'src/constants/error-messages';
11-
import { wrapRdiPipelineError } from './rdi-pipiline.error.handler';
11+
import { wrapRdiPipelineError } from './rdi-pipeline.error.handler';
1212
import { RdiPipelineForbiddenException } from './rdi-pipeline.forbidden.exception';
1313

1414
describe('wrapRdiPipelineError', () => {

redisinsight/api/src/modules/rdi/exceptions/rdi-pipiline.error.handler.ts renamed to redisinsight/api/src/modules/rdi/exceptions/rdi-pipeline.error.handler.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
RdiPipelineValidationException,
88
} from 'src/modules/rdi/exceptions';
99
import { RdiPipelineForbiddenException } from './rdi-pipeline.forbidden.exception';
10+
import { RdiPipelineBadRequestException } from "src/modules/rdi/exceptions/rdi-pipeline.bad-request.exception";
1011

1112
export const parseErrorMessage = (error: AxiosError<any>): string => {
1213
const data = error.response?.data;
@@ -33,6 +34,8 @@ export const wrapRdiPipelineError = (error: AxiosError<any>): HttpException => {
3334
if (response) {
3435
const errorOptions = response?.data?.detail;
3536
switch (response?.status) {
37+
case 400:
38+
return new RdiPipelineBadRequestException(message, errorOptions);
3639
case 401:
3740
return new RdiPipelineUnauthorizedException(message, errorOptions);
3841
case 403:

0 commit comments

Comments
 (0)