LP#1772680: Fixed Search issue
authorJaswinder Singh <jaswinder.singh0011@gmail.com>
Thu, 20 Sep 2018 21:21:08 +0000 (17:21 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Sat, 17 Nov 2018 13:37:26 +0000 (08:37 -0500)
Signed-off-by: Jaswinder Singh <jaswinder.singh0011@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/RBDigitalSearch.pm

index 76767bf..85f19c0 100644 (file)
@@ -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'
index 5030652..ed33d8e 100644 (file)
@@ -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 = '';
     
index 4d591b8..f1de429 100644 (file)
@@ -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,