File size: 986 Bytes
2c16c8c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | // src/shared/utils/api.response.ts
import { HttpStatusCode } from "./status-code";
export interface ApiSuccessResponse<T = any> {
success: true;
data?: T;
statusCode?: number;
message: string;
}
export interface ApiErrorResponse {
success: false;
statusCode?: number;
errorCode: string;
message: string;
errors?: any;
}
export type ApiResponseType<T = any> = ApiSuccessResponse<T> | ApiErrorResponse;
export class ApiResponse {
static success<T = any>(
message = 'Success',
data: T,
statusCode = HttpStatusCode.OK
): ApiSuccessResponse<T> {
return {
success: true,
data,
message,
statusCode,
};
}
static error(
message: string,
errorCode: string,
errors: any = null,
statusCode = HttpStatusCode.BAD_REQUEST
): ApiErrorResponse {
return {
success: false,
message,
errorCode,
errors,
statusCode,
};
}
}
|