feat: add transformPayloadFilter method to IDataTransformer and integrate it in getMany for filter transformation
This commit is contained in:
@@ -75,6 +75,12 @@ export interface IDataTransformer<TEntity extends BaseEntity = BaseEntity, TDTO
|
||||
* If not provided, falls back to `transformToDTO`.
|
||||
*/
|
||||
transformEditPayload?(entity: Partial<TEntity>): Partial<TDTO>;
|
||||
|
||||
/**
|
||||
* Transform the filter payload before a `getMany()` call.
|
||||
* If not provided, falls back to identity.
|
||||
*/
|
||||
transformPayloadFilter?(filter: Record<string, any>): Record<string, any>;
|
||||
}
|
||||
|
||||
// ─── Abstract Base Transformer ──────────────────────────────────
|
||||
@@ -213,4 +219,17 @@ export abstract class BaseDataTransformer<TEntity extends BaseEntity = BaseEntit
|
||||
transformEditPayload(entity: Partial<TEntity>): Partial<TDTO> {
|
||||
return this.transformToDTO(entity as TEntity) as Partial<TDTO>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Transform the filter payload before a `getMany()` call.
|
||||
*
|
||||
* Override this when getMany filters need special formatting
|
||||
* (e.g., date formats, converting arrays to comma-separated strings).
|
||||
*
|
||||
* @param filter - The filter params from the frontend
|
||||
* @returns The mapped filter params for the API query
|
||||
*/
|
||||
transformPayloadFilter(filter: Record<string, any>): Record<string, any> {
|
||||
return filter;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user