|
1 |
| -export default entityData => (_, { page, perPage = 25, filter = '{}' }) => { |
2 |
| - const filters = JSON.parse(filter); |
| 1 | +export default entityData => (_, { page, perPage = 25, filter = {} }) => { |
3 | 2 | let items = [...entityData];
|
4 | 3 |
|
5 |
| - if (filters.ids) { |
6 |
| - items = items.filter(d => filters.ids.includes(d.id.toString())); |
| 4 | + if (filter.ids) { |
| 5 | + items = items.filter(d => filter.ids.includes(d.id.toString())); |
7 | 6 | } else {
|
8 |
| - Object.keys(filters).filter(key => key !== 'q').forEach(key => { |
| 7 | + Object.keys(filter).filter(key => key !== 'q').forEach(key => { |
9 | 8 | if (key.indexOf('_lte') !== -1) {
|
10 | 9 | // less than or equal
|
11 | 10 | const realKey = key.replace(/(_lte)$/, '');
|
12 |
| - items = items.filter(d => d[realKey] <= filters[key]); |
| 11 | + items = items.filter(d => d[realKey] <= filter[key]); |
13 | 12 | return;
|
14 | 13 | }
|
15 | 14 | if (key.indexOf('_gte') !== -1) {
|
16 | 15 | // less than or equal
|
17 | 16 | const realKey = key.replace(/(_gte)$/, '');
|
18 |
| - items = items.filter(d => d[realKey] >= filters[key]); |
| 17 | + items = items.filter(d => d[realKey] >= filter[key]); |
19 | 18 | return;
|
20 | 19 | }
|
21 | 20 | if (key.indexOf('_lt') !== -1) {
|
22 | 21 | // less than or equal
|
23 | 22 | const realKey = key.replace(/(_lt)$/, '');
|
24 |
| - items = items.filter(d => d[realKey] < filters[key]); |
| 23 | + items = items.filter(d => d[realKey] < filter[key]); |
25 | 24 | return;
|
26 | 25 | }
|
27 | 26 | if (key.indexOf('_gt') !== -1) {
|
28 | 27 | // less than or equal
|
29 | 28 | const realKey = key.replace(/(_gt)$/, '');
|
30 |
| - items = items.filter(d => d[realKey] > filters[key]); |
| 29 | + items = items.filter(d => d[realKey] > filter[key]); |
31 | 30 | return;
|
32 | 31 | }
|
33 | 32 |
|
34 |
| - items = items.filter(d => d[key] == filters[key]); |
| 33 | + items = items.filter(d => d[key] == filter[key]); |
35 | 34 | });
|
36 | 35 |
|
37 |
| - if (filters.q) { |
| 36 | + if (filter.q) { |
38 | 37 | items = items.filter(d =>
|
39 |
| - Object.keys(d).some(key => |
40 |
| - d[key].toString().includes(filters.q) |
41 |
| - ) |
| 38 | + Object.keys(d).some(key => d[key].toString().includes(filter.q)) |
42 | 39 | );
|
43 | 40 | }
|
44 | 41 | }
|
|
0 commit comments