Files
feishin/server/utils/api-success.ts
T
2022-10-25 16:52:45 -07:00

46 lines
1.2 KiB
TypeScript

import { PaginationItems, SuccessResponse } from '../types/types';
export class ApiSuccess {
data: any;
statusCode: number;
paginationItems?: PaginationItems;
constructor(options: {
data: any;
paginationItems?: PaginationItems;
statusCode: number;
}) {
this.data = options.data;
this.statusCode = options.statusCode;
this.paginationItems = options.paginationItems;
}
static ok({ data, paginationItems }: SuccessResponse) {
return new ApiSuccess({
data,
paginationItems,
statusCode: 200,
});
}
static created({ data, paginationItems }: SuccessResponse) {
return new ApiSuccess({ data, paginationItems, statusCode: 201 });
}
static accepted({ data, paginationItems }: SuccessResponse) {
return new ApiSuccess({ data, paginationItems, statusCode: 202 });
}
static noContent({ data, paginationItems }: SuccessResponse) {
return new ApiSuccess({ data, paginationItems, statusCode: 204 });
}
static resetContent({ data, paginationItems }: SuccessResponse) {
return new ApiSuccess({ data, paginationItems, statusCode: 205 });
}
static partialContent({ data, paginationItems }: SuccessResponse) {
return new ApiSuccess({ data, paginationItems, statusCode: 206 });
}
}