123456789101112131415161718192021222324252627282930313233343536373839 |
- import { ResponseMessage } from './message.constant'
- import { ApiResponse, ServiceResponse } from './response.interface'
- import { HttpStatusCode, BusinessCode } from './status-code.enum'
- export class ResponseUtil {
- private static readonly statusCodeMap: Record<number, number> = {
- [HttpStatusCode.OK]: BusinessCode.SUCCESS,
- [HttpStatusCode.BAD_REQUEST]: BusinessCode.BAD_REQUEST,
- [HttpStatusCode.UNAUTHORIZED]: BusinessCode.UNAUTHORIZED,
- [HttpStatusCode.FORBIDDEN]: BusinessCode.FORBIDDEN,
- [HttpStatusCode.NOT_FOUND]: BusinessCode.NOT_FOUND,
- [HttpStatusCode.INTERNAL_SERVER_ERROR]: BusinessCode.INTERNAL_SERVER_ERROR,
- [HttpStatusCode.TOO_MANY_REQUESTS]: BusinessCode.TOO_MANY_REQUESTS
- }
- private static readonly defaultMessages: Record<number, string> = {
- [HttpStatusCode.OK]: ResponseMessage.SUCCESS,
- [HttpStatusCode.BAD_REQUEST]: ResponseMessage.BAD_REQUEST,
- [HttpStatusCode.UNAUTHORIZED]: ResponseMessage.UNAUTHORIZED,
- [HttpStatusCode.FORBIDDEN]: ResponseMessage.FORBIDDEN,
- [HttpStatusCode.NOT_FOUND]: ResponseMessage.NOT_FOUND,
- [HttpStatusCode.INTERNAL_SERVER_ERROR]:
- ResponseMessage.INTERNAL_SERVER_ERROR,
- [HttpStatusCode.TOO_MANY_REQUESTS]: ResponseMessage.TOO_MANY_REQUESTS
- }
- static handleResponse<T>(response: ServiceResponse<T>): ApiResponse<T> {
- const { code, msg, data } = response
- const businessCode = this.statusCodeMap[code] || BusinessCode.UNKNOWN_ERROR
- const message =
- msg || this.defaultMessages[code] || ResponseMessage.UNKNOWN_ERROR
- return {
- code: businessCode,
- msg: message,
- data: businessCode === BusinessCode.SUCCESS ? data : null
- }
- }
- }
|