diff --git a/includes/admin.form.inc b/includes/admin.form.inc deleted file mode 100644 index e8fc9c0..0000000 --- a/includes/admin.form.inc +++ /dev/null @@ -1,80 +0,0 @@ - TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('The Relais AddRequest URL'), - '#description' => t('The URL for the Relais ILL server AddRequest service, the default is - https://caul-cbua.relais-host.com/portal-service/request/add'), - '#default_value' => variable_get('upei_roblib_ill_add_url', 'https://caul-cbua.relais-host.com/portal-service/request/add'), - ]; - $form['upei_roblib_ill_auth_url'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('The Relais Auth URL'), - '#description' => t('The URL for the Relais ILL server Auth service (retrieve the aid), the default is - https://caul-cbua.relais-host.com/portal-service/user/authentication'), - '#default_value' => variable_get('upei_roblib_ill_auth_url', 'https://caul-cbua.relais-host.com/portal-service/user/authentication'), - ]; - $form['upei_roblib_ill_library_symbol'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('Your Relais Library Symbol'), - '#description' => t('Your Relais Library Symbol'), - '#default_value' => variable_get('upei_roblib_ill_library_symbol'), - ]; - - $form['upei_roblib_ill_relais_key'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('The Relais API key'), - '#description' => t('The API key used to communicate with the Relais API, Contact Relais International to get your key'), - '#default_value' => variable_get('upei_roblib_ill_relais_key'), - ]; - $form['upei_roblib_ill_doi_openurl_pid'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('OpenURL PID'), - '#description' => t('An identifier to call yourself, for the OpenURL endpoint. To use this service you first need to register for an account here: http://www.crossref.org/requestaccount/'), - '#default_value' => variable_get('upei_roblib_ill_doi_openurl_pid'), - ]; - $form['upei_roblib_ill_contact_email'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('Contact Email'), - '#description' => t('The email address we want to show after a user has submitted an ILL request'), - '#default_value' => variable_get('upei_roblib_ill_contact_email', 'ill@upei.ca'), - ]; - $form['upei_roblib_ill_contact_phone'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('Contact Phone Number'), - '#description' => t('The phone number we want to show to the user after a user has submitted an ILL request'), - '#default_value' => variable_get('upei_roblib_ill_contact_phone', '902-566-0445'), - ]; - $form['upei_roblib_ill_header_message'] = [ - '#required' => TRUE, - '#type' => 'textarea', - '#title' => t('ILL Header Message'), - '#description' => t('The message that appears at the top of the ILL form, recently used for Covid messages. Leave this blank for no message to appear at the top of the form.'), - '#default_value' => variable_get('upei_roblib_ill_header_message', ''), - ]; - - - return system_settings_form($form); - -} diff --git a/includes/relais.inc b/includes/relais.inc deleted file mode 100644 index df6bab4..0000000 --- a/includes/relais.inc +++ /dev/null @@ -1,167 +0,0 @@ -loadInclude('upei_roblib_ill', 'inc', 'includes/db'); - \Drupal::moduleHandler()->loadInclude('upei_roblib_ill', 'inc', 'includes/utilities'); - $config = \Drupal::config('upei_roblib_ill.settings'); - $url = trim($config->get('ill_add_url')); - $relais_arr = upei_roblib_ill_build_relais_arr($form_state); - $relais_json = json_encode($relais_arr); - $options = [ - 'body' => $relais_json, - 'timeout' => 15, - 'headers' => ['Content-Type' => 'application/json'], - ]; - if (!isset($aid) || is_array($aid)) { - upei_roblib_ill_log_request($relais_arr, $aid); - \Drupal::messenger()->addMessage(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); - try { - $response = \Drupal::httpClient()->post($url . '?aid=' . $aid, $options); - //$response_data = (string) $response->getBody(); - } - catch (Exception $e) { - return ['ConfirmMessage' => 'Error Communicating with Relais, ' . $e->getMessage()]; - } - $response_arr = json_decode($response->getBody(),TRUE); - - if (!isset($response_arr)) { - return ['ConfirmMessage' => 'Error Communicating with Relais, no data returned.']; - } - $response_arr['ConfirmMessage'] = isset($response_arr['Problem']['ErrorMessage']) ? $response_arr['Problem']['ErrorMessage'] : $response_arr['ConfirmMessage']; - upei_roblib_ill_log_request($relais_arr, $response_arr); - return $response_arr; -} - -/** - * @param $form_state - * - * @return array - */ -function upei_roblib_ill_build_relais_arr($form_state) { - \Drupal::moduleHandler()->loadInclude('upei_roblib_ill', 'inc', 'includes/utilities'); - $storage = $form_state->getStorage(); - $ill_request = $storage['request']; - $values = $form_state->getValues(); - $config = \Drupal::config('upei_roblib_ill.settings'); - $relais_arr = [ - "SupplyingLibrarySymbol" => $config->get('ill_library_symbol'), - ]; - $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'], $values['notes']); - $relais_arr['RequestInfo'] = $request_info; - $relais_arr['PublisherInfo']['PublicationDate'] = isset($ill_request['Date']) ? - $ill_request['Date'] : ''; - $relais_arr['PublisherInfo']['PublicationType'] = $pub_type; - return $relais_arr; -} - -/** - * Request an aid from Relais. - * - * @param string $barcode - * A patron_id, campus_id or barcode to identify a user - * - * @return string/array - * Returns a Relais authentication id (token) or an array containing the - * Relais response error which should include the error message if - * 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'); - $config = \Drupal::config('upei_roblib_ill.settings'); - $url = $config->get('ill_auth_url'); - $json_arr = []; - $json_arr['ApiKey'] = $config->get('ill_relais_key'); - $json_arr['UserGroup'] = 'patron'; - $json_arr['LibrarySymbol'] = $config->get('ill_library_symbol'); - $json_arr['PatronId'] = $barcode; - $request_json = json_encode($json_arr); - $options = [ - 'body' => $request_json, - 'timeout' => 15, - 'headers' => ['Content-Type' => 'application/json'], - ]; - try { - $response = \Drupal::httpClient()->post($url, $options); - } - catch (Exception $e) { - $human_readable = ''; - if($e->getCode() == '401') { - $human_readable = t('There may have been an issue with your Campus ID, ' - . 'Please verify it is correct. '); - } - $response_data['Problem']['Message'] = $e->getMessage(); - $response_data['Problem']['HR_Message'] = upei_roblib_ill_build_err_msg($human_readable); - return $response_data; - } - - $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); - return $response_data; - } - $aid = $response_data['AuthorizationId']; - } - return isset($aid) ? $aid : $response_data; -} - -function upei_roblib_ill_build_err_msg($msg_from_server) { - $campus_id = Link::fromTextAndUrl(t('Campus ID'), Url::fromUri('http://www.upei.ca/vpaf/campuscard')); - //$campus_id = l(t('Campus ID'), 'http://www.upei.ca/vpaf/campuscard'); - $ill_email = Link::fromTextAndUrl('ill@upei.ca', Url::fromUri('mailto:ill@upei.ca')); - //$ill_email = l(t('ill@upei.ca'), 'mailto:ill@upei.ca'); - $phone = Link::fromTextAndUrl('902-566-0583', Url::fromUri('tel:902-566-0353')); - //$phone = l(t('902-566-0583'), 'tel:902-566-0353'); - $server_response = !empty($msg_from_server) ? 'Server Response: ' . $msg_from_server : ''; - return t('Oops. Something went wrong.
Check the "Your Last Name" and "Your Campus ID" fields - those two need to match what is on file -. (Your @campus_id appears as the NUMBER near the middle of your campus card). If you do not have a @campus_id, please contact the Robertson Library Service Desk, or, -call @phone. Note: if you are a student taking online courses only, please email @ill_email.
@msg_from_server', - [ - '@campus_id' => $campus_id->toString(), - '@ill_email' => $ill_email->toString(), - '@phone' => $phone->toString(), - '@msg_from_server' => $server_response, - ]); -} - diff --git a/src/Form/RoblibIllSettingsForm.php b/src/Form/RoblibIllSettingsForm.php index 46948b4..006599f 100644 --- a/src/Form/RoblibIllSettingsForm.php +++ b/src/Form/RoblibIllSettingsForm.php @@ -10,57 +10,35 @@ use Drupal\Core\Form\FormStateInterface; * * @author ppound */ -class RoblibIllSettingsForm extends FormBase { +class RoblibIllSettingsForm extends FormBase +{ /** * {@inheritdoc} */ - public function getFormId() { + public function getFormId() + { return 'roblib_ill_settings_form'; } /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state) { + public function buildForm(array $form, FormStateInterface $form_state) + { $config = \Drupal::config('upei_roblib_ill.settings'); $form = []; - $form['ill_add_url'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('The Relais AddRequest URL'), - '#description' => t('The URL for the Relais ILL server AddRequest service, the default is - https://caul-cbua.relais-host.com/portal-service/request/add'), - '#default_value' => $config->get('ill_add_url'), - ]; - $form['ill_auth_url'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('The Relais Auth URL'), - '#description' => t('The URL for the Relais ILL server Auth service (retrieve the aid), the default is - https://caul-cbua.relais-host.com/portal-service/user/authentication'), - '#default_value' => $config->get('ill_auth_url'), - ]; + $form['ill_library_symbol'] = [ '#required' => TRUE, '#type' => 'textfield', '#size' => 200, - '#title' => t('Your Relais Library Symbol'), + '#title' => t('Your ILL Library Symbol'), '#description' => t('Your Relais Library Symbol'), '#default_value' => $config->get('ill_library_symbol'), ]; - $form['ill_relais_key'] = [ - '#required' => TRUE, - '#type' => 'textfield', - '#size' => 200, - '#title' => t('The Relais API key'), - '#description' => t('The API key used to communicate with the Relais API, Contact Relais International to get your key'), - '#default_value' => $config->get('ill_relais_key'), - ]; $form['ill_doi_openurl_pid'] = [ '#required' => TRUE, '#type' => 'textfield', @@ -120,7 +98,7 @@ class RoblibIllSettingsForm extends FormBase { '#size' => 200, ]; - $form['actions']['submit'] = [ + $form['actions']['submit'] = [ '#type' => 'submit', '#value' => t('Save'), '#button_type' => 'primary', @@ -132,14 +110,16 @@ class RoblibIllSettingsForm extends FormBase { /** * {@inheritdoc} */ - public function validateForm(array &$form, FormStateInterface $form_state) { - + public function validateForm(array &$form, FormStateInterface $form_state) + { + } /** * {@inheritdoc} */ - public function submitForm(array &$form, FormStateInterface $form_state) { + public function submitForm(array &$form, FormStateInterface $form_state) + { $config = \Drupal::configFactory()->getEditable('upei_roblib_ill.settings'); $config->set('ill_add_url', $form_state->getValue('ill_add_url'))->save(); $config->set('ill_auth_url', $form_state->getValue('ill_auth_url'))->save(); @@ -160,4 +140,4 @@ class RoblibIllSettingsForm extends FormBase { $config->set('rapid_ill_branch_name', $form_state->getValue('rapid_ill_branch_name'))->save(); } -} +} \ No newline at end of file