diff --git a/includes/db.inc b/includes/db.inc
index 201f77a..41f9c1f 100644
--- a/includes/db.inc
+++ b/includes/db.inc
@@ -26,6 +26,7 @@ function upei_roblib_ill_log_request($request, $response) {
//'patron_email' => $request['DeliveryAddress']['DeliveryAddress'],
'notes' => isset($request['DeliveryAddress']['notes']) ? $request['DeliveryAddress']['notes'] : '',
'genre' => isset($request['BibliographicInfo']['Genre']) ? $request['BibliographicInfo']['Genre'] : '',
+ 'doi' => isset($request['BibliographicInfo']['AdditionalNumbers']) ? $request['BibliographicInfo']['AdditionalNumbers'] : '',
'author' => isset($request['BibliographicInfo']['Author']) ? $request['BibliographicInfo']['Author'] : '',
'citation_date' => isset($request['BibliographicInfo']['Date']) ? $request['BibliographicInfo']['Date'] : '',
'title' => isset($request['BibliographicInfo']['Title']) ? $request['BibliographicInfo']['Title'] : '',
diff --git a/includes/form.inc b/includes/form.inc
index f65d1d4..8fff829 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -43,6 +43,11 @@ function upei_roblib_ill_form_validate($form, &$form_state) {
if (is_array($aid) && isset($aid['Problem']['Message'])) {
form_set_error('Surname', $aid['Problem']['Message']);
form_set_error('campus_id', '');
+ // Log invalid requests, we need to build the full array here to log it, even though we won't send it yet as auth has failed.
+ $form_state['storage']['upei_roblib_ill_auth_form'] = $form_state['values'];
+ module_load_include('inc', 'upei_roblib_ill', 'includes/db');
+ $arr = upei_roblib_ill_build_relais_arr($form_state);
+ upei_roblib_ill_log_request($arr, $aid);
}
else {
$form_state['storage']['aid'] = $aid;
@@ -95,7 +100,7 @@ function upei_roblib_ill_form_submit($form, &$form_state) {
function upei_roblib_ill_form_redirect() {
//TODO turn this into a drupal render array
//TODO phone number, email etc. could be variables read from the database.
- $std_message = "
To contact the department about this request, you can send a message to
ill@upei.ca or
+ $std_message = "
A message including the Request ID has been sent to your UPEI email address.
To contact the department about this request, you can send a message to
ill@upei.ca or
call 902-566-0445
";
return "
" . $_GET['message'] . '
' . $std_message;
}
diff --git a/includes/relais.inc b/includes/relais.inc
index 3286f04..b86da02 100644
--- a/includes/relais.inc
+++ b/includes/relais.inc
@@ -14,27 +14,21 @@ function upei_roblib_ill_get_pub_type($genre) {
return 'J';
}
}
+
/**
* Submit an ILL AddRequest to relais.
+ *
* @param array $form_state
* A drupal form_state array
* @param string $aid
* A relais authentication id (token)
+ * @return array|mixed
*/
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');
- $relais_arr = array(
- "SupplyingLibrarySymbol" => variable_get('upei_roblib_ill_library_symbol','PCU'),
- );
- $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']);
- $request_info = upei_roblib_ill_request_info_array($relais_arr['BibliographicInfo'], $form_state['values']['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']['PublicationType'] = upei_roblib_ill_get_pub_type($form_state['storage']['upei_roblib_ill_request_form']['Genre']);
+ $relais_arr = upei_roblib_ill_build_relais_arr($form_state);
$relais_json = json_encode($relais_arr);
$options = array(
'method' => 'POST',
@@ -59,6 +53,25 @@ function upei_roblib_ill_add_request($form_state, $aid) {
return $response_arr;
}
+/**
+ * @param $form_state
+ * @return array
+ */
+function upei_roblib_ill_build_relais_arr($form_state) {
+ module_load_include('inc', 'upei_roblib_ill', 'includes/utilities');
+ $relais_arr = array(
+ "SupplyingLibrarySymbol" => variable_get('upei_roblib_ill_library_symbol','PCU'),
+ );
+ $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']);
+ $request_info = upei_roblib_ill_request_info_array($relais_arr['BibliographicInfo'], $form_state['values']['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']['PublicationType'] = upei_roblib_ill_get_pub_type($form_state['storage']['upei_roblib_ill_request_form']['Genre']);
+ return $relais_arr;
+}
+
/**
* Request an aid from Relais.
* @param string $barcode
diff --git a/upei_roblib_ill.install b/upei_roblib_ill.install
index 556da79..120c9c2 100644
--- a/upei_roblib_ill.install
+++ b/upei_roblib_ill.install
@@ -41,7 +41,7 @@ function upei_roblib_ill_schema() {
'description' => 'The email address of the user that submitted the request',
'type' => 'varchar',
'length' => '255',
- 'not null' => TRUE,
+ 'not null' => FALSE,
),
'patron_lastname' => array(
'description' => 'Lastname of the user that submitted the request',
@@ -133,6 +133,12 @@ function upei_roblib_ill_schema() {
'length' => '30',
'not null' => TRUE,
),
+ 'doi' => array(
+ 'description' => 'The DOI',
+ 'type' => 'varchar',
+ 'length' => '255',
+ 'not null' => FALSE,
+ ),
'relais_request_id' => array(
'description' => 'The request id stored in the Relais datbabase',
'type' => 'varchar',
diff --git a/upei_roblib_ill.module b/upei_roblib_ill.module
index d44a8f0..cd4946f 100644
--- a/upei_roblib_ill.module
+++ b/upei_roblib_ill.module
@@ -36,6 +36,13 @@ function upei_roblib_ill_menu() {
return $items;
}
+/**
+ * Get the metadata associated with this DOI.
+ *
+ * @param $form
+ * @param $form_state
+ * @return array
+ */
function upei_roblib_ill_doi_callback($form, &$form_state) {
module_load_include('inc', 'upei_roblib_ill', 'includes/doi');
$form = upei_roblib_ill_doi_get_data($form, $form_state['values']['doi']);
@@ -370,6 +377,23 @@ function upei_roblib_ill_views_data() {
'handler' => 'views_handler_argument_string',
),
);
+ $data['upei_roblib_ill_request']['doi'] = array(
+ 'title' => t('DOI'),
+ 'help' => t('DOI.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ 'click sortable' => TRUE,
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_string',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_string',
+ ),
+ );
$data['upei_roblib_ill_request']['relais_request_id'] = array(
'title' => t('The Relais request id'),
'help' => t('The Relais request id.'),