Skip to content
This repository was archived by the owner on Jun 22, 2021. It is now read-only.

Commit 8676496

Browse files
committed
fix: Fixes $or filtering.
1 parent da1fb58 commit 8676496

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

src/factory.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ before(async () => {
3131
}));
3232
});
3333

34-
facadeTest(factory<TestEntity>({
34+
const facade = factory<TestEntity>({
3535
constructEntity: (document) => {
3636
return {
3737
...document,
@@ -41,4 +41,6 @@ facadeTest(factory<TestEntity>({
4141
db,
4242
entityName: 'Test Entity',
4343
tableName,
44-
}));
44+
});
45+
46+
facadeTest(facade);

src/utils/filterEntities.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@ const addAndToQuery = <E extends Entity>(query: QueryBuilder, filters: Filter<E>
1515
};
1616

1717
const addOrToQuery = <E extends Entity>(query: QueryBuilder, filters: Filter<E>[]) => {
18-
return filters.reduce((result, filter) => {
19-
return result.orWhere(function (this: QueryBuilder) {
20-
// tslint:disable-next-line:no-invalid-this no-this
21-
constructFilter(this, filter);
22-
});
23-
}, query);
18+
// tslint:disable:no-invalid-this no-this
19+
return query.where(function (this: QueryBuilder) {
20+
return filters.reduce((result, filter) => {
21+
return result.orWhere(function (this: QueryBuilder) {
22+
constructFilter(this, filter);
23+
});
24+
}, this);
25+
});
26+
// tslint:enable:no-invalid-this no-this
2427
};
2528

2629
const addNorToQuery = <E extends Entity>(query: QueryBuilder, filters: Filter<E>[]) => {
@@ -97,7 +100,8 @@ const constructFilter = <E extends Entity>(
97100
filter: Filter<E>,
98101
): QueryBuilder => {
99102
const conditionQuery = constructConditionFilter(query, filter as any);
100-
return constructEntityFilter(conditionQuery, filter as EntityFilter<E>);
103+
const finalQuery = constructEntityFilter(conditionQuery, filter as EntityFilter<E>);
104+
return finalQuery;
101105
};
102106

103107
export default constructFilter;

0 commit comments

Comments
 (0)