Add filtering

This commit is contained in:
2025-01-06 18:30:31 +05:30
parent 7d88bb1e13
commit 7e3218f84e
4 changed files with 36 additions and 6 deletions

View File

@@ -35,3 +35,25 @@ export function getSortObject(
return sortObj;
}
export function getFilterObject(
params: PageQueryParams,
validFields: Array<string>
) {
const filterObj: Array<{}> = [];
if (params.filter && params.filter != "") {
const filterOptions = params.filter.split(",");
filterOptions.forEach((item) => {
if (item.includes("!=")) {
const [key, val] = item.split("!=").map((token) => token.trim());
if (validFields.includes(key)) filterObj.push({ [key]: { $ne: val } });
} else if (item.includes("=")) {
const [key, val] = item.split("=").map((token) => token.trim());
if (validFields.includes(key)) filterObj.push({ [key]: { $eq: val } });
}
});
}
return filterObj;
}