|
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