# 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,
$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,
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'
# 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) = @_;
}
# 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) {
}
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 = '';
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;
$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));
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);
}
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,
}
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,