From 591a29a00c04f545f90702095e2949f51eae4550 Mon Sep 17 00:00:00 2001 From: Jaswinder Singh Date: Mon, 1 Oct 2018 12:57:12 -0400 Subject: [PATCH] LP#1772680: Removed hard coded API_URL from code and add to the database Signed-off-by: Jaswinder Singh Signed-off-by: Galen Charlton --- Open-ILS/examples/fm_IDL.xml | 1 + .../lib/OpenILS/Application/EbookAPI/RBDigital.pm | 61 ++++++++++++---------- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index bd8992687b..ba9cc19a22 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -13190,6 +13190,7 @@ SELECT usr, + 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 df6d51a1be..531f134f35 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/EbookAPI/RBDigital.pm @@ -85,7 +85,15 @@ sub initialize { my $self = shift; my $ou = $self->{ou}; - $self->{base_uri} = OpenILS::Application::AppUtils->ou_ancestor_setting_value($ou, 'ebook_api.rbdigital.base_uri') || EBOOK_API_DOMAIN; + # Get the API URl + if (TEST_QA) { + $self->{base_uri} = EBOOK_API_DOMAIN_QA; + } else { + my $digital_services_req = _get_digital_services(EBOOK_API_VENDOR); + if ($digital_services_req) { + $self->{base_uri} = $digital_services_req->content->[0]->api_url; + } + } my $object_rdsa = _get_vendor_library($ou); @@ -246,27 +254,15 @@ sub do_basic_search { $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) { - $uri = EBOOK_API_DOMAIN_QA."/$basic_search_uri"; - $req = { - method => 'GET', - uri => $uri, - headers => { - 'Authorization' => 'bearer ' . EBOOK_API_QA_TOKEN, - 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8' - } - }; - } else { - $uri = "$base_uri/libraries/$library_id/$basic_search_uri"; - $req = { - method => 'GET', - uri => $uri, - headers => { - 'Authorization' => 'Basic ' . $self->{basic_token}, - 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8' - } - }; - } + $uri = "$base_uri/libraries/$library_id/$basic_search_uri"; + $req = { + method => 'GET', + uri => $uri, + headers => { + 'Authorization' => 'Basic ' . $self->{basic_token}, + 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8' + } + }; my $res = $self->request($req, $session_id); @@ -905,16 +901,16 @@ sub get_patron_holds { sub is_authorized_patron { my ($self, $home_library_id) = @_; my $is_authorized = 0; - my $ebook_rds_req; + my $ebook_rdsa_req; my $pcrud = OpenSRF::AppSession->create('open-ils.pcrud'); $pcrud->connect(); - $ebook_rds_req = $pcrud->request('open-ils.pcrud.search.ebook_rdsa.atomic', "ANONYMOUS", + $ebook_rdsa_req = $pcrud->request('open-ils.pcrud.search.ebook_rdsa.atomic', "ANONYMOUS", { home_ou => $home_library_id } )->gather(); - if ($ebook_rds_req && scalar (@$ebook_rds_req) > 0) { + if ($ebook_rdsa_req && scalar (@$ebook_rdsa_req) > 0) { #read the library.id to find corrosponding library id from digital services atuhorized table $is_authorized = 1; } @@ -1005,9 +1001,7 @@ sub save_search_fields { # First, get the Digital Service ID by name $logger->info("EbookAPI: Calling to retreive vendor id from db."); - my $digital_services_req = $pcrud->request('open-ils.pcrud.search.ebook_rds.atomic', "ANONYMOUS", - { vendor_key => $vendor_key } - )->recv(); + my $digital_services_req = _get_digital_services($vendor_key); if ($digital_services_req) { $digital_services_id = $digital_services_req->content->[0]->id; @@ -1204,4 +1198,15 @@ sub remove_search_field_mappings { return { status => "success" }; } + +sub _get_digital_services { + my ($vendor_key) = @_; + + $logger->info("EbookAPI: Calling to retreive vendor ($vendor_key) information from db."); + my $pcrud = OpenSRF::AppSession->create('open-ils.pcrud'); + $pcrud->connect(); + return $pcrud->request('open-ils.pcrud.search.ebook_rds.atomic', "ANONYMOUS", + { vendor_key => $vendor_key } + )->recv(); +} 1; -- 2.11.0