File tree Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ function filters(query, options) {
1414 delete query . start_at
1515 delete query . end_at
1616 delete query . period
17+ let or_count = 0
1718 for ( const elem in query ) {
1819 if ( query [ elem ] instanceof Array ) {
1920 query [ elem ] . forEach ( function ( param ) {
@@ -22,7 +23,18 @@ function filters(query, options) {
2223 } else {
2324 if ( query [ elem ] instanceof Object ) {
2425 } else if ( query [ elem ] . includes ( ',' ) ) {
25- result [ '$or' ] = result [ '$or' ] . concat ( splitByCommas ( elem , query [ elem ] ) )
26+ if ( or_count === 0 ) {
27+ result [ '$or' ] = result [ '$or' ] . concat ( splitByCommas ( elem , query [ elem ] ) )
28+ }
29+ else if ( or_count === 1 ) {
30+ result [ '$and' ] . push ( { '$or' : result [ '$or' ] } )
31+ result [ '$and' ] . push ( { '$or' : splitByCommas ( elem , query [ elem ] ) } )
32+ result [ '$or' ] = [ ]
33+ }
34+ else {
35+ result [ '$and' ] . push ( { '$or' : splitByCommas ( elem , query [ elem ] ) } )
36+ }
37+ or_count ++
2638 } else {
2739 Object . assign ( result , processQuery ( elem , query [ elem ] ) )
2840 }
You can’t perform that action at this time.
0 commit comments