forked from yoone/API
1
0
Fork 0
API/src/utils/response-wrapper.util.ts

41 lines
1.1 KiB
TypeScript

import { ApiProperty, Type } from '@midwayjs/swagger';
/**
* 动态包装通用返回格式
*/
export function SuccessWrapper<T>(ResourceCls: Type<T>): Type<any> {
class SuccessResponse {
@ApiProperty({ description: '状态码', example: 200 })
code: number;
@ApiProperty({ description: '是否成功', example: true })
success: boolean;
@ApiProperty({ description: '消息内容', example: '操作成功' })
message: string;
@ApiProperty({ description: '响应数据', type: ResourceCls })
data: T;
}
return SuccessResponse;
}
export function SuccessArrayWrapper<T>(ResourceCls: Type<T>): Type<any> {
class SuccessArrayResponse {
@ApiProperty({ description: '状态码', example: 200 })
code: number;
@ApiProperty({ description: '是否成功', example: true })
success: boolean;
@ApiProperty({ description: '消息内容', example: '操作成功' })
message: string;
@ApiProperty({ description: '响应数据', type: ResourceCls, isArray: true })
data: T[];
}
return SuccessArrayResponse;
}