updated filtering code

This commit is contained in:
2025-05-02 16:27:52 +05:30
parent 4153bd2412
commit c84cd055d4
10 changed files with 160 additions and 211 deletions

View File

@@ -1,5 +1,5 @@
import { z } from "zod";
import { parse } from "./utils/queryParser";
import { z } from 'zod';
import { parse } from './utils/queryParser';
export const pageMetadata = z.object({
count: z.number(),
@@ -23,30 +23,23 @@ export function getSortObject(
) {
const sortObj: Record<string, 1 | -1> = {};
if (params.sort && params.sort != "") {
const sortOptions = params.sort.split(",");
if (params.sort && params.sort != '') {
const sortOptions = params.sort.split(',');
sortOptions.forEach((item) => {
const order = item.startsWith("-") ? -1 : 1;
const field = item.replace("-", "").trim();
const order = item.startsWith('-') ? -1 : 1;
const field = item.replace('-', '').trim();
if (validFields.includes(field)) sortObj[field] = order;
});
}
if (Object.keys(sortObj).length == 0) sortObj["createdAt"] = -1;
if (Object.keys(sortObj).length == 0) sortObj['createdAt'] = -1;
return sortObj;
}
export function getFilterObject(
params: PageQueryParams,
validFields: Array<string>
) {
const filterObj: Array<{}> = [];
if (params.filter && params.filter != "") {
filterObj.push(...parse(params.filter, validFields));
export function getFilterObject(params: PageQueryParams) {
if (params.filter && params.filter != '') {
return parse(params.filter.split(','));
}
return filterObj;
}