updated filter parser

This commit is contained in:
2025-01-31 11:12:51 +05:30
parent def1dce168
commit da06598503
2 changed files with 108 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
import { z } from "zod";
import { parse } from "./utils/queryParser";
export const pageMetadata = z.object({
count: z.number(),
@@ -43,16 +44,7 @@ export function getFilterObject(
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 } });
}
});
filterObj.push(...parse(params.filter, validFields));
}
return filterObj;