From 872324691068cc9e194f42ff0873f77547503c35 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Thu, 3 Oct 2024 19:07:58 +0200 Subject: [PATCH] move MetaCPAN::Model::Search to MetaCPAN::Query::Search The module more resembles a query module. --- lib/MetaCPAN/API/Plugin/Model.pm | 8 ++++---- lib/MetaCPAN/{Model => Query}/Search.pm | 17 +++-------------- lib/MetaCPAN/Server/Model/Search.pm | 10 +++++----- t/model/search.t | 8 ++++---- xt/search_web.t | 8 ++++---- 5 files changed, 20 insertions(+), 31 deletions(-) rename lib/MetaCPAN/{Model => Query}/Search.pm (97%) diff --git a/lib/MetaCPAN/API/Plugin/Model.pm b/lib/MetaCPAN/API/Plugin/Model.pm index 8688d5e73..b95e56286 100644 --- a/lib/MetaCPAN/API/Plugin/Model.pm +++ b/lib/MetaCPAN/API/Plugin/Model.pm @@ -5,7 +5,7 @@ use Mojo::Base 'Mojolicious::Plugin'; use Carp (); # Models from the catalyst app -use MetaCPAN::Model::Search (); +use MetaCPAN::Query::Search (); # New models use MetaCPAN::API::Model::Cover (); @@ -21,9 +21,9 @@ has download => sub { has search => sub { my $self = shift; - return MetaCPAN::Model::Search->new( - es => $self->app->es, - index => 'cpan', + return MetaCPAN::Query::Search->new( + es => $self->app->es, + index_name => 'cpan', ); }; diff --git a/lib/MetaCPAN/Model/Search.pm b/lib/MetaCPAN/Query/Search.pm similarity index 97% rename from lib/MetaCPAN/Model/Search.pm rename to lib/MetaCPAN/Query/Search.pm index 6bc2e5bd5..e3eeb69b8 100644 --- a/lib/MetaCPAN/Model/Search.pm +++ b/lib/MetaCPAN/Query/Search.pm @@ -1,4 +1,4 @@ -package MetaCPAN::Model::Search; +package MetaCPAN::Query::Search; use MetaCPAN::Moose; @@ -10,18 +10,7 @@ use MetaCPAN::Types::TypeTiny qw( Object Str ); use MetaCPAN::Util qw( single_valued_arrayref_to_scalar true false ); use MooseX::StrictConstructor; -has es => ( - is => 'ro', - isa => Object, - handles => { _run_query => 'search', }, - required => 1, -); - -has index => ( - is => 'ro', - isa => Str, - required => 1, -); +with 'MetaCPAN::Query::Role::Common'; const my $RESULTS_PER_RUN => 200; const my @ROGUE_DISTRIBUTIONS => qw( @@ -368,7 +357,7 @@ sub build_query { sub run_query { my ( $self, $type, $es_query ) = @_; - return $self->_run_query( + return $self->es->search( index => $self->index, type => $type, body => $es_query, diff --git a/lib/MetaCPAN/Server/Model/Search.pm b/lib/MetaCPAN/Server/Model/Search.pm index 6e9049d4c..646a17ebf 100644 --- a/lib/MetaCPAN/Server/Model/Search.pm +++ b/lib/MetaCPAN/Server/Model/Search.pm @@ -4,20 +4,20 @@ use strict; use warnings; use Moose; -use MetaCPAN::Model::Search (); +use MetaCPAN::Query::Search (); extends 'MetaCPAN::Server::Model::CPAN'; has search => ( is => 'ro', - isa => 'MetaCPAN::Model::Search', + isa => 'MetaCPAN::Query::Search', lazy => 1, handles => [qw( search_for_first_result search_web )], default => sub { my $self = shift; - return MetaCPAN::Model::Search->new( - es => $self->es, - index => $self->index, + return MetaCPAN::Query::Search->new( + es => $self->es, + index_name => $self->index, ); }, ); diff --git a/t/model/search.t b/t/model/search.t index 9495c8977..76f62267a 100644 --- a/t/model/search.t +++ b/t/model/search.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::Model::Search (); +use MetaCPAN::Query::Search (); use MetaCPAN::TestServer (); use MetaCPAN::Util qw(true false); use Test::Deep qw( cmp_deeply ignore ); @@ -10,9 +10,9 @@ use Test::More; # Just use this to get an es object. my $server = MetaCPAN::TestServer->new; -my $search = MetaCPAN::Model::Search->new( - es => $server->es_client, - index => 'cpan', +my $search = MetaCPAN::Query::Search->new( + es => $server->es_client, + index_name => 'cpan', ); ok( $search, 'search' ); diff --git a/xt/search_web.t b/xt/search_web.t index 6145b1f92..d2bf281f8 100644 --- a/xt/search_web.t +++ b/xt/search_web.t @@ -5,15 +5,15 @@ use lib 't/lib'; # USE `bin/prove_live` to run this # READ the README.txt in this dir -use MetaCPAN::Model::Search (); +use MetaCPAN::Query::Search (); use MetaCPAN::TestServer (); use Test::More; # Just use this to get an es object. my $server = MetaCPAN::TestServer->new; -my $search = MetaCPAN::Model::Search->new( - es => $server->es_client, - index => 'cpan', +my $search = MetaCPAN::Query::Search->new( + es => $server->es_client, + index_name => 'cpan', ); my %tests = (