import { DataArrayResponseDto, DataPageResponseDto, DataResponseDto, IPageMeta, PageMetaResponseDto } from '../dtos'; import { ErrorCategory } from '../enums'; import { IFieldError, IResponseError } from '../interfaces'; export class ResponseFactory { static data(data: T): DataResponseDto { return new DataResponseDto(data); } static dataArray(data: T[]): DataArrayResponseDto { return new DataArrayResponseDto(data); } static dataPage(data: T[], meta: IPageMeta): DataPageResponseDto { return new DataPageResponseDto(data, new PageMetaResponseDto(meta)); } static error(category: ErrorCategory, message: string, errors?: IFieldError[]): IResponseError { return { category, message, errors: errors || [], }; } }