search: limit results to 50, default to 10

This search query is pretty heavy. Defaulting to 500 has caused
Hydra's web UI to appear to be down. Since 500 can take it down, users
probably shouldn't be allowed t ask for that many.
This commit is contained in:
Graham Christensen 2021-01-30 08:37:47 -05:00
parent 6d047c286f
commit 4f308b1f2f
No known key found for this signature in database
GPG key ID: FE918C3A98C1030F

View file

@ -13,6 +13,7 @@ use Nix::Config;
use Encode; use Encode;
use File::Basename; use File::Basename;
use JSON; use JSON;
use List::Util qw[min max];
use List::MoreUtils qw{any}; use List::MoreUtils qw{any};
use Net::Prometheus; use Net::Prometheus;
@ -438,12 +439,8 @@ sub search :Local Args(0) {
error($c, "Invalid character in query.") error($c, "Invalid character in query.")
unless $query =~ /^[a-zA-Z0-9_\-\/.]+$/; unless $query =~ /^[a-zA-Z0-9_\-\/.]+$/;
my $limit = trim $c->request->params->{"limit"}; my $limit = int(trim ($c->request->params->{"limit"} || "10"));
if ($limit eq "") { $c->stash->{limit} = min(50, max(1, $limit));
$c->stash->{limit} = 500;
} else {
$c->stash->{limit} = $limit;
}
$c->stash->{projects} = [ $c->model('DB::Projects')->search( $c->stash->{projects} = [ $c->model('DB::Projects')->search(
{ -and => { -and =>