Add filtering
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user