Skip to content

Commit 2dc18ec

Browse files
fix: number question values, when saved as string, would not match in filters (#774)
* fixed number filter is not considering string numbers * lint fixed --------- Co-authored-by: Antoine Hurard <antoine.reliefapps@gmail.com>
1 parent b263bdb commit 2dc18ec

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/utils/filter/getFilter.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
7979
} else {
8080
return {
8181
$or: [
82-
{ [fieldName]: { $eq: value } },
82+
// Make sure that we check on number & string values
83+
{ [fieldName]: { $eq: String(value) } },
8384
{ [fieldName]: { $eq: intValue } },
8485
],
8586
};
@@ -97,7 +98,7 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
9798
} else {
9899
return {
99100
$or: [
100-
{ [fieldName]: { $ne: value } },
101+
{ [fieldName]: { $ne: String(value) } },
101102
{ [fieldName]: { $ne: intValue } },
102103
],
103104
};
@@ -121,7 +122,7 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
121122
} else {
122123
return {
123124
$or: [
124-
{ [fieldName]: { $lt: value } },
125+
{ [fieldName]: { $lt: String(value) } },
125126
{ [fieldName]: { $lt: intValue } },
126127
],
127128
};
@@ -133,7 +134,7 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
133134
} else {
134135
return {
135136
$or: [
136-
{ [fieldName]: { $lte: value } },
137+
{ [fieldName]: { $lte: String(value) } },
137138
{ [fieldName]: { $lte: intValue } },
138139
],
139140
};
@@ -145,7 +146,7 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
145146
} else {
146147
return {
147148
$or: [
148-
{ [fieldName]: { $gt: value } },
149+
{ [fieldName]: { $gt: String(value) } },
149150
{ [fieldName]: { $gt: intValue } },
150151
],
151152
};
@@ -157,7 +158,7 @@ const buildMongoFilter = (filter: any, fields: any[]): any => {
157158
} else {
158159
return {
159160
$or: [
160-
{ [fieldName]: { $gte: value } },
161+
{ [fieldName]: { $gte: String(value) } },
161162
{ [fieldName]: { $gte: intValue } },
162163
],
163164
};

src/utils/schema/resolvers/Query/getFilter.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ const buildMongoFilter = (
241241
} else {
242242
return {
243243
$or: [
244-
{ [fieldName]: { $eq: value } },
244+
// Make sure that we compare both strings & numbers
245+
{ [fieldName]: { $eq: String(value) } },
245246
{ [fieldName]: { $eq: intValue } },
246247
],
247248
};
@@ -262,7 +263,7 @@ const buildMongoFilter = (
262263
} else {
263264
return {
264265
$and: [
265-
{ [fieldName]: { $ne: value } },
266+
{ [fieldName]: { $ne: String(value) } },
266267
{ [fieldName]: { $ne: intValue } },
267268
],
268269
};
@@ -286,7 +287,7 @@ const buildMongoFilter = (
286287
} else {
287288
return {
288289
$or: [
289-
{ [fieldName]: { $lt: value } },
290+
{ [fieldName]: { $lt: String(value) } },
290291
{ [fieldName]: { $lt: intValue } },
291292
],
292293
};
@@ -298,7 +299,7 @@ const buildMongoFilter = (
298299
} else {
299300
return {
300301
$or: [
301-
{ [fieldName]: { $lte: value } },
302+
{ [fieldName]: { $lte: String(value) } },
302303
{ [fieldName]: { $lte: intValue } },
303304
],
304305
};
@@ -310,7 +311,7 @@ const buildMongoFilter = (
310311
} else {
311312
return {
312313
$or: [
313-
{ [fieldName]: { $gt: value } },
314+
{ [fieldName]: { $gt: String(value) } },
314315
{ [fieldName]: { $gt: intValue } },
315316
],
316317
};
@@ -322,7 +323,7 @@ const buildMongoFilter = (
322323
} else {
323324
return {
324325
$or: [
325-
{ [fieldName]: { $gte: value } },
326+
{ [fieldName]: { $gte: String(value) } },
326327
{ [fieldName]: { $gte: intValue } },
327328
],
328329
};

0 commit comments

Comments
 (0)