|
|
|
@ -28,29 +28,38 @@ function upei_roblib_ill_get_pub_type($genre) {
|
|
|
|
|
function upei_roblib_ill_add_request($form_state, $aid) { |
|
|
|
|
module_load_include('inc', 'upei_roblib_ill', 'includes/db'); |
|
|
|
|
module_load_include('inc', 'upei_roblib_ill', 'includes/utilities'); |
|
|
|
|
$url = variable_get('upei_roblib_ill_add_url', 'https://caul-cbua.relais-host.com/portal-service/request/add'); |
|
|
|
|
$config = \Drupal::config('upei_roblib_ill.settings'); |
|
|
|
|
$url = $config->get('ill_add_url'); |
|
|
|
|
$relais_arr = upei_roblib_ill_build_relais_arr($form_state); |
|
|
|
|
$relais_json = json_encode($relais_arr); |
|
|
|
|
$options = [ |
|
|
|
|
'method' => 'POST', |
|
|
|
|
'data' => $relais_json, |
|
|
|
|
'body' => $relais_json, |
|
|
|
|
'timeout' => 15, |
|
|
|
|
'headers' => ['Content-Type' => 'application/json'], |
|
|
|
|
]; |
|
|
|
|
if (!isset($aid) || is_array($aid)) { |
|
|
|
|
upei_roblib_ill_log_request($relais_arr, $aid); |
|
|
|
|
//upei_roblib_ill_log_request($relais_arr, $aid); |
|
|
|
|
drupal_set_message(t('Error retrieving authentication token, @message', ['@message' => $aid['Problem']['Message']]), 'error'); |
|
|
|
|
return ['ConfirmMessage' => t('There was an error processing your request, @msg', ['@msg' => $aid['Problem']['Message']])]; |
|
|
|
|
} |
|
|
|
|
$result = drupal_http_request($url . '?aid=' . $aid, $options); |
|
|
|
|
//$result = drupal_http_request($url . '?aid=' . $aid, $options); |
|
|
|
|
try { |
|
|
|
|
$response = \Drupal::httpClient()->post($url . '?aid=' . $aid, $options); |
|
|
|
|
$data = (string) $response->getBody(); |
|
|
|
|
} |
|
|
|
|
catch (Exception $e) { |
|
|
|
|
return ['ConfirmMessage' => 'Error Communicating with Relais, ' . $e->getMessage()]; |
|
|
|
|
} |
|
|
|
|
$response_arr = json_decode($response->getBody(),TRUE); |
|
|
|
|
$status_code = $response->getStatusCode(); |
|
|
|
|
module_load_include('inc', 'upei_roblib_ill', 'includes/db'); |
|
|
|
|
if (!isset($result->data)) { |
|
|
|
|
if (!isset($response_date)) { |
|
|
|
|
return ['ConfirmMessage' => 'Error Communicating with Relais, no data returned.']; |
|
|
|
|
} |
|
|
|
|
$response_json = $result->data; |
|
|
|
|
$response_arr = json_decode($response_json, TRUE); |
|
|
|
|
//$response_arr = json_decode($response_json, TRUE); |
|
|
|
|
$response_arr['ConfirmMessage'] = isset($response_arr['Problem']['ErrorMessage']) ? $response_arr['Problem']['ErrorMessage'] : $response_arr['ConfirmMessage']; |
|
|
|
|
upei_roblib_ill_log_request($relais_arr, $response_arr); |
|
|
|
|
//upei_roblib_ill_log_request($relais_arr, $response_arr); |
|
|
|
|
return $response_arr; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -61,21 +70,25 @@ function upei_roblib_ill_add_request($form_state, $aid) {
|
|
|
|
|
*/ |
|
|
|
|
function upei_roblib_ill_build_relais_arr($form_state) { |
|
|
|
|
module_load_include('inc', 'upei_roblib_ill', 'includes/utilities'); |
|
|
|
|
$storage = $form_state->getStorage(); |
|
|
|
|
$ill_request = $storage['request']; |
|
|
|
|
$values = $form_state->getValues(); |
|
|
|
|
$config = \Drupal::config('upei_roblib_ill.settings'); |
|
|
|
|
$relais_arr = [ |
|
|
|
|
"SupplyingLibrarySymbol" => variable_get('upei_roblib_ill_library_symbol', 'PCU'), |
|
|
|
|
"SupplyingLibrarySymbol" => $config->get('ill_library_symbol'), |
|
|
|
|
]; |
|
|
|
|
$pub_type = upei_roblib_ill_get_pub_type($form_state['storage']['upei_roblib_ill_request_form']['Genre']); |
|
|
|
|
$relais_arr['BibliographicInfo'] = upei_roblib_ill_clean_array($form_state['storage']['upei_roblib_ill_request_form']); |
|
|
|
|
$relais_arr['DeliveryAddress'] = upei_roblib_ill_clean_array($form_state['storage']['upei_roblib_ill_auth_form']); |
|
|
|
|
$pub_type = upei_roblib_ill_get_pub_type($ill_request['Genre']); |
|
|
|
|
$relais_arr['BibliographicInfo'] = upei_roblib_ill_clean_array($ill_request); |
|
|
|
|
$relais_arr['DeliveryAddress'] = upei_roblib_ill_clean_array($values); |
|
|
|
|
if ($pub_type != 'B') { |
|
|
|
|
// this is not a book but is a journal or chapter we will send electronically and as copy |
|
|
|
|
$relais_arr['ElectronicDelivery']['DeliveryAddress'] = $relais_arr['ElectronicDelivery']['MessagingAddress'] = |
|
|
|
|
$relais_arr['DeliveryAddress']['DeliveryAddress']; |
|
|
|
|
} |
|
|
|
|
$request_info = upei_roblib_ill_request_info_array($relais_arr['BibliographicInfo'], $form_state['values']['notes']); |
|
|
|
|
$request_info = upei_roblib_ill_request_info_array($relais_arr['BibliographicInfo'], $ill_request['notes']); |
|
|
|
|
$relais_arr['RequestInfo'] = $request_info; |
|
|
|
|
$relais_arr['PublisherInfo']['PublicationDate'] = isset($form_state['storage']['upei_roblib_ill_request_form']['Date']) ? |
|
|
|
|
$form_state['storage']['upei_roblib_ill_request_form']['Date'] : ''; |
|
|
|
|
$relais_arr['PublisherInfo']['PublicationDate'] = isset($ill_request['Date']) ? |
|
|
|
|
$ill_request['Date'] : ''; |
|
|
|
|
$relais_arr['PublisherInfo']['PublicationType'] = $pub_type; |
|
|
|
|
return $relais_arr; |
|
|
|
|
} |
|
|
|
@ -92,26 +105,36 @@ function upei_roblib_ill_build_relais_arr($form_state) {
|
|
|
|
|
* authentication fails |
|
|
|
|
*/ |
|
|
|
|
function upei_roblib_ill_authenticate($barcode, $surname) { |
|
|
|
|
$url = variable_get('upei_roblib_ill_auth_url', 'https://caul-cbua.relais-host.com/portal-service/user/authentication'); |
|
|
|
|
//$url = variable_get('upei_roblib_ill_auth_url', 'https://caul-cbua.relais-host.com/portal-service/user/authentication'); |
|
|
|
|
$config = \Drupal::config('upei_roblib_ill.settings'); |
|
|
|
|
$url = $config->get('ill_auth_url'); |
|
|
|
|
$json_arr = []; |
|
|
|
|
$json_arr['ApiKey'] = variable_get('upei_roblib_ill_relais_key'); |
|
|
|
|
$json_arr['ApiKey'] = $config->get('ill_relais_key'); |
|
|
|
|
$json_arr['UserGroup'] = 'patron'; |
|
|
|
|
$json_arr['LibrarySymbol'] = variable_get('upei_roblib_ill_library_symbol'); |
|
|
|
|
$json_arr['LibrarySymbol'] = $config->get('ill_library_symbol'); |
|
|
|
|
$json_arr['PatronId'] = $barcode; |
|
|
|
|
$request_json = json_encode($json_arr); |
|
|
|
|
$options = [ |
|
|
|
|
'method' => 'POST', |
|
|
|
|
'data' => $request_json, |
|
|
|
|
'body' => $request_json, |
|
|
|
|
'timeout' => 15, |
|
|
|
|
'headers' => ['Content-Type' => 'application/json'], |
|
|
|
|
]; |
|
|
|
|
$result = drupal_http_request($url, $options); |
|
|
|
|
try { |
|
|
|
|
$response = \Drupal::httpClient()->post($url, $options); |
|
|
|
|
} |
|
|
|
|
catch (Exception $e) { |
|
|
|
|
$response_data['Problem']['Message'] = $e->getMessage(); |
|
|
|
|
return $response_data; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*$result = drupal_http_request($url, $options); |
|
|
|
|
if ($result->code != '200') { |
|
|
|
|
$response_data['Problem']['Message'] = $result->error; |
|
|
|
|
return $response_data; |
|
|
|
|
} |
|
|
|
|
$response_data = json_decode($result->data, TRUE); |
|
|
|
|
if ($result->code == '200') { |
|
|
|
|
}*/ |
|
|
|
|
$response_data = json_decode($response->getBody(),TRUE); |
|
|
|
|
$status_code = $response->getStatusCode(); |
|
|
|
|
if ($status_code == '200') { |
|
|
|
|
if (isset($response_data['Problem']) || strtolower($response_data['LastName']) !== strtolower($surname)) { |
|
|
|
|
$err_message = isset($response_data['Problem']['Message']) ? $response_data['Problem']['Message'] : ''; |
|
|
|
|
$response_data['Problem']['Message'] = upei_roblib_ill_build_err_msg($err_message); |
|
|
|
|