From 6cf479835ede06c54e10df82fc1ffd459734d2f3 Mon Sep 17 00:00:00 2001 From: Jaswinder Singh Date: Thu, 20 Sep 2018 17:21:08 -0400 Subject: [PATCH] LP#1772680: Fixed Search issue Signed-off-by: Jaswinder Singh Signed-off-by: Galen Charlton --- Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm | 9 +++++++-- .../src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm | 6 +++--- .../perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm | 10 ++++++---- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm index 76767bf1f5..85f19c0f35 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm @@ -1058,7 +1058,7 @@ __PACKAGE__->register_method( # Basic Search call to Recorded Books API sub basic_search { - my ($self, $conn, $auth, $session_id, + my ($self, $conn, $auth, $session_id, $is_eg_advanced_search, $value_to_search, $search_type, $media_format, $library_location, $facets, $search_inputs, $sort_by, $sort_order, @@ -1088,7 +1088,7 @@ sub basic_search { $logger->info("EbookAPI: basic_search - Calling an internal API."); - return $handler->do_basic_search($patron_id, + return $handler->do_basic_search($patron_id, $is_eg_advanced_search, $value_to_search, $search_type, $media_format, $library_location, \@$facets, \@$search_inputs, $sort_by, $sort_order, @@ -1114,6 +1114,11 @@ __PACKAGE__->register_method( type => 'string' }, { + name => 'is_eg_advanced_search', + desc => 'field to determine if this advanced search initiated from Evergreen', + type => 'number' + }, + { name => 'value_to_search', desc => 'The search string', type => 'string' diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm index 50306529ce..ed33d8e846 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm @@ -224,7 +224,7 @@ sub _get_patron_id { # Handles ebook, eaudio, and emagazine search # GET http://api.rbdigital.com/v1/libraries/{libraryID}/search/{media_format}?{*tokens} sub do_basic_search { - my ($self, $patron_id, $value_to_search, $search_type, + my ($self, $patron_id, $is_eg_advanced_search, $value_to_search, $search_type, $media_format, $library_location, $facets, $search_inputs, $sort_by, $sort_order, $page_index, $page_size) = @_; @@ -243,7 +243,7 @@ sub do_basic_search { } # Call local method to get URI for a request - $basic_search_uri = _build_search_URI($search_type, $media_format, $value_to_search, $facets, $search_inputs, $sort_by, $sort_order, $page_index, $page_size); + $basic_search_uri = _build_search_URI($is_eg_advanced_search, $search_type, $media_format, $value_to_search, $facets, $search_inputs, $sort_by, $sort_order, $page_index, $page_size); $logger->info('EbookAPI: Calling the search API: '.$uri); if (TEST_QA) { @@ -279,7 +279,7 @@ sub do_basic_search { } sub _build_search_URI { - my ($search_type, $media_format, $value_to_search, $facets, $search_inputs, $sort_by, $sort_order, $page_index, $page_size) = @_; + my ($is_eg_advanced_search, $search_type, $media_format, $value_to_search, $facets, $search_inputs, $sort_by, $sort_order, $page_index, $page_size) = @_; my $uri = ''; my $sort_string = ''; diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm index 4d591b8f70..f1de4297a4 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm @@ -120,6 +120,8 @@ sub load_rbdigital_results { my $record_ids; my $results; my $session_id; + my $is_eg_advanced_search = $cgi->param('_adv') || 0; + $logger->info('EbookAPI: RBDigitalSearch started'); return $self->redirect_auth unless $self->editor->requestor; @@ -160,7 +162,7 @@ sub load_rbdigital_results { $logger->info('EbookAPI: RBDigitalSearch: facet: '.scalar(@facets)); # Parse parameters passed by Evergreen Advanced Search - if ($cgi->param('qtype')) { + if ($cgi->param('qtype') && $is_eg_advanced_search == 1) { #Evergreen Advanced Search: @search_inputs = _parse_evergreen_advanced_search($cgi); $logger->info("Parsed User Query: ".Dumper(@search_inputs)); @@ -248,7 +250,7 @@ sub load_rbdigital_results { if ($media_format eq 'eaudio' || $media_format eq 'ebook' || $media_format eq 'book' || $media_format eq 'music' || $media_format eq '' ) { $logger->info('EbookAPI: RBDigitalSearch Invoking search method'); - $results = _search ($self->editor->authtoken, $session_id, + $results = _search ($self->editor->authtoken, $session_id, $is_eg_advanced_search, $value_to_search, $search_type, $media_format, $library_location, \@facets, \@search_inputs, $sort_by, $sort_order, $page_index, $page_size); @@ -427,7 +429,7 @@ sub _get_ebook_session_id { } sub _search { - my ($authtoken, $session_id, + my ($authtoken, $session_id, $is_eg_advanced_search, $value_to_search, $search_type, $media_format, $library_location, $facets, $search_inputs, $sort_by, $sort_order, @@ -448,7 +450,7 @@ sub _search { } my $basic_search_req = $ebookapi_session->request($method, - $authtoken, $session_id, + $authtoken, $session_id, $is_eg_advanced_search, $value_to_search, $search_type, $media_format, $library_location, \@$facets, \@$search_inputs, $sort_by, $sort_order, -- 2.11.0