Skip to content

Commit df1daaa

Browse files
authored
fix: Add whitelist and filter support to common adapter service (#1132)
1 parent f83c28c commit df1daaa

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

packages/adapter-commons/lib/service.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,16 @@ module.exports = class AdapterService {
3434
return this.options.events;
3535
}
3636

37-
filterQuery (params = {}, options = {}) {
37+
filterQuery (params = {}, opts = {}) {
3838
const paginate = typeof params.paginate !== 'undefined'
3939
? params.paginate : this.options.paginate;
4040
const { query = {} } = params;
41-
const result = filterQuery(query, Object.assign({ paginate }, options));
41+
const options = Object.assign({
42+
operators: this.options.whitelist || [],
43+
filters: this.options.filters,
44+
paginate
45+
}, opts);
46+
const result = filterQuery(query, options);
4247

4348
return Object.assign(result, { paginate });
4449
}

packages/adapter-commons/test/service.test.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ describe('@feathersjs/adapter-commons/service', () => {
100100
});
101101
});
102102

103-
it('getFilters', () => {
104-
const service = new CustomService();
103+
it('filterQuery', () => {
104+
const service = new CustomService({
105+
whitelist: [ '$something' ]
106+
});
105107
const filtered = service.filterQuery({
106108
query: { $limit: 10, test: 'me' }
107109
});
@@ -111,5 +113,15 @@ describe('@feathersjs/adapter-commons/service', () => {
111113
filters: { $limit: 10 },
112114
query: { test: 'me' }
113115
});
116+
117+
const withWhitelisted = service.filterQuery({
118+
query: { $limit: 10, $something: 'else' }
119+
});
120+
121+
assert.deepStrictEqual(withWhitelisted, {
122+
paginate: {},
123+
filters: { $limit: 10 },
124+
query: { $something: 'else' }
125+
});
114126
});
115127
});

0 commit comments

Comments
 (0)