added array filter option
This commit is contained in:
@@ -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,23 +23,26 @@ 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) {
|
||||
if (params.filter && params.filter != '') {
|
||||
return parse(params.filter.split(','));
|
||||
if (params.filter && params.filter != "") {
|
||||
const parsedQuery = parse(params.filter.split("|")).filter(
|
||||
(query) => Object.keys(query).length > 0
|
||||
);
|
||||
return parsedQuery;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user