| 
      
            Lines 138-155
          shouldn't be called twice in it.
      
      
        Link Here
      
     | 
  
        
          | 138 | 
                          $filtered_params = $c->build_query_params( $filtered_params, $reserved_params );  | 
          138 | 
                          $filtered_params = $c->build_query_params( $filtered_params, $reserved_params );  | 
        
        
          | 139 | 
                      }  | 
          139 | 
                      }  | 
        
        
          | 140 | 
           | 
          140 | 
           | 
        
          
            
              | 141 | 
                          if( defined $reserved_params->{q} || defined $reserved_params->{query} || defined $reserved_params->{'x-koha-query'}) { | 
              141 | 
                          if (   defined $reserved_params->{q} | 
            
            
              | 142 | 
                              $filtered_params //={}; | 
              142 | 
                              || defined $reserved_params->{query} | 
            
            
               | 
               | 
              143 | 
                              || defined $reserved_params->{'x-koha-query'} ) | 
            
            
              | 144 | 
                          { | 
            
            
              | 145 | 
                              $filtered_params //= {}; | 
            
            
              | 146 | 
               | 
            
        
          | 143 | 
                          my @query_params_array;  | 
          147 | 
                          my @query_params_array;  | 
        
          
            
              | 144 | 
                              my $query_params;  | 
              148 | 
               | 
            
            
              | 145 | 
                              push @query_params_array, $reserved_params->{query} if defined $reserved_params->{query}; | 
              149 | 
                              # query in request body, JSON::Validator already decoded it  | 
            
            
               | 
               | 
              150 | 
                              push @query_params_array, $reserved_params->{query} | 
            
            
              | 151 | 
                                if defined $reserved_params->{query}; | 
            
            
              | 152 | 
               | 
            
        
          | 146 | 
                          my $json = JSON->new;  | 
          153 | 
                          my $json = JSON->new;  | 
        
            
              | 147 | 
                              push @query_params_array, $json->decode($reserved_params->{q}) if defined $reserved_params->{q}; | 
               | 
               | 
            
            
              | 148 | 
                              push @query_params_array, $json->decode($reserved_params->{'x-koha-query'}) if defined $reserved_params->{'x-koha-query'}; | 
            
        
          | 149 | 
           | 
          154 | 
           | 
        
          
            
              | 150 | 
                              if(scalar(@query_params_array) > 1) { | 
              155 | 
                              # q is defined as multi => JSON::Validator generates an array  | 
            
            
              | 151 | 
                                  $query_params = {'-and' => \@query_params_array}; | 
              156 | 
                              foreach my $q ( @{ $reserved_params->{q} } ) { | 
            
            
              | 152 | 
                              } else { | 
              157 | 
                                  push @query_params_array, $json->decode($q)  | 
            
            
               | 
               | 
              158 | 
                                  if $q; # skip if exists but is empty  | 
            
            
              | 159 | 
                              }  | 
            
            
              | 160 | 
               | 
            
            
              | 161 | 
                              push @query_params_array,  | 
            
            
              | 162 | 
                                $json->decode( $reserved_params->{'x-koha-query'} ) | 
            
            
              | 163 | 
                                if defined $reserved_params->{'x-koha-query'}; | 
            
            
              | 164 | 
               | 
            
            
              | 165 | 
                              my $query_params;  | 
            
            
              | 166 | 
               | 
            
            
              | 167 | 
                              if ( scalar(@query_params_array) > 1 ) { | 
            
            
              | 168 | 
                                  $query_params = { '-and' => \@query_params_array }; | 
            
            
              | 169 | 
                              }  | 
            
            
              | 170 | 
                              else { | 
            
        
          | 153 | 
                              $query_params = $query_params_array[0];  | 
          171 | 
                              $query_params = $query_params_array[0];  | 
        
        
          | 154 | 
                          }  | 
          172 | 
                          }  | 
        
        
          | 155 | 
           | 
          173 | 
           |