Skip to content

Commit ae6fb99

Browse files
committed
updateDateFilters
1 parent 5f91532 commit ae6fb99

File tree

2 files changed

+29
-22
lines changed

2 files changed

+29
-22
lines changed

packages/integrations/gei-bookings/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gei-bookings",
3-
"version": "0.2.3",
3+
"version": "0.2.4",
44
"description": "Automatically generated by graphql-editor-cli",
55
"main": "lib/index.js",
66
"scripts": {

packages/integrations/gei-bookings/src/utils/db/orm.ts

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -78,43 +78,50 @@ export function updateNestedFields(inputObject: Record<string, any>, nestedObjec
7878
!Array.isArray(inputObject[field]) &&
7979
!(inputObject[field] instanceof Date)
8080
) {
81-
const updateNestedObject: Record<string, any> = {};
8281
const updateNestedObjectSet = updateNestedFields(inputObject[field], field);
8382
for (const nestedField in updateNestedObjectSet) {
84-
const fieldName = `${field}.${nestedField}`;
85-
updateNestedObject[fieldName] = updateNestedObjectSet[field];
83+
const fieldName = `${nestedObjectName}.${nestedField}`;
84+
updateObject[fieldName] = updateNestedObjectSet[nestedField];
8685
}
87-
updateObject = { ...updateObject, ...updateNestedObject };
8886
} else {
89-
const fieldName = `${nestedObjectName}.${field}`;
90-
updateObject[fieldName] = inputObject[field];
87+
const fieldName = `${nestedObjectName}.${field}`;
88+
updateObject[fieldName] = inputObject[field];
9189
}
9290
}
9391
return updateObject;
9492
}
9593

9694
export const isScalarDate = (obj: unknown): boolean => typeof obj === 'string' && obj !== null && !!Date.parse(obj);
97-
export const inputServiceFiltersSet = (filters: any ) => {
98-
if (!filters) return {}
99-
const pa =
100-
filters &&
101-
Object.fromEntries(Object.entries(filters).filter((v) => v !== null && v !== undefined && v[0] !== 'fromDate' && v[0] !== 'toDate'));
95+
96+
export const inputDateFilter = (filters: Record<string, any>) => {
10297
const fromDate = isScalarDate(filters.fromDate)
10398
const toDate = isScalarDate(filters.toDate)
104-
105-
return {...pa, ...(toDate && { startDate: { $lte: new Date(filters.toDate as string) } }), ...(fromDate && { startDate: { $gte: new Date(filters.fromDate as string) } }), ...(filters?.name && { name: { $regex: filters.name, $options: 'i' } }),
99+
const dateFilter: { $gte?: string | undefined, $lte?: string | undefined } = {};
100+
if (fromDate) {
101+
dateFilter.$gte = filters.fromDate as string;
102+
}
103+
if (toDate) {
104+
dateFilter.$lte = filters.toDate as string;
105+
}
106+
return dateFilter
107+
}
108+
109+
export const simpleFieldsFilter = (filters: Record<string, any>) =>
110+
filters &&
111+
Object.fromEntries(Object.entries(filters).filter((v) => v !== null && v !== undefined && v[0] !== 'fromDate' && v[0] !== 'toDate'));
112+
113+
export const inputServiceFiltersSet = (filters: Record<string, any> | null | undefined) => {
114+
if (!filters) return {}
115+
const dateFilter = inputDateFilter(filters)
116+
return {...simpleFieldsFilter(filters), ...((dateFilter.$gte || dateFilter.$lte) && { startDate: dateFilter }), ...(filters?.name && { name: { $regex: filters.name, $options: 'i' } }),
106117
...(filters?.description && {
107118
description: { $regex: filters.description, $options: 'i' },
108119
})}
109120
}
110121

111122

112-
export const inputBooksFiltersSet = (filters: any ) => {
113-
if (!filters) return {}
114-
const pa =
115-
filters &&
116-
Object.fromEntries(Object.entries(filters).filter((v) => v !== null && v !== undefined && v[0] !== 'fromDate' && v[0] !== 'toDate'));
117-
const fromDate = isScalarDate(filters.fromDate)
118-
const toDate = isScalarDate(filters.toDate)
119-
return {...pa, ...(toDate && { 'comments.to': { $lte: new Date(filters.toDate as string) } }), ...(fromDate && { 'comments.from': { $gte: new Date(filters.fromDate as string) } })}}
123+
export const inputBooksFiltersSet = (filters: Record<string, any> | null | undefined) => {
124+
if (!filters) return {}
125+
const dateFilter = inputDateFilter(filters)
126+
return { ...simpleFieldsFilter(filters), ...((dateFilter.$gte || dateFilter.$lte) && { 'comments.from': dateFilter })}}
120127

0 commit comments

Comments
 (0)