diff --git a/lib/MetaCPAN/Web/Controller/Requires.pm b/lib/MetaCPAN/Web/Controller/Requires.pm index 2ea2b880ac..e2e859f948 100644 --- a/lib/MetaCPAN/Web/Controller/Requires.pm +++ b/lib/MetaCPAN/Web/Controller/Requires.pm @@ -23,7 +23,6 @@ __PACKAGE__->config( sub distribution : Local : Args(1) : Does('Sortable') { my ( $self, $c, $distribution, $sort ) = @_; - my $cv = AE::cv(); my $page_size = $c->req->get_page_size(50); my $data @@ -44,12 +43,11 @@ sub distribution : Local : Args(1) : Does('Sortable') { sub module : Local : Args(1) : Does('Sortable') { my ( $self, $c, $module, $sort ) = @_; - my $cv = AE::cv(); my $page_size = $c->req->get_page_size(50); my $data = $c->model('API::Module') - ->requires( $module, $c->req->page, $page_size, $sort )->recv; + ->requires( $module, $c->req->page, $page_size, $sort ); $c->stash( { %{$data}, diff --git a/lib/MetaCPAN/Web/Model/API/Module.pm b/lib/MetaCPAN/Web/Model/API/Module.pm index a17a837149..537ce54d8f 100644 --- a/lib/MetaCPAN/Web/Model/API/Module.pm +++ b/lib/MetaCPAN/Web/Model/API/Module.pm @@ -79,42 +79,17 @@ sub first { sub requires { my ( $self, $module, $page, $page_size, $sort ) = @_; - $sort ||= { date => 'desc' }; - my $cv = $self->cv; - $self->request( - '/release/_search', + + my $data = $self->request( + "/release/requires/$module", + undef, { - query => { - bool => { - must => [ - { term => { 'status' => 'latest' } }, - { term => { 'authorized' => 1 } }, - { - term => { - 'dependency.module' => $module - } - } - ] - } - }, - size => $page_size, - from => $page * $page_size - $page_size, - sort => [$sort], - } - )->cb( - sub { - my $data = shift->recv; - $cv->send( - { - data => - [ map { $_->{_source} } @{ $data->{hits}->{hits} } ], - total => $data->{hits}->{total}, - took => $data->{took} - } - ); - } - ); - return $cv; + page => $page, + page_size => $page_size, + }, + )->recv; + + return $data; } __PACKAGE__->meta->make_immutable;