From bdbcd209d96e2a65aa4e9c49581e9315a839a7b1 Mon Sep 17 00:00:00 2001 From: djfiander Date: Tue, 11 Mar 2008 21:37:05 +0000 Subject: [PATCH] Add support for PINES requested extension: Patron Info Response now includes AQ "Home Library" field. --- Sip/Constants.pm | 12 +++++++----- Sip/MsgType.pm | 6 ++++++ t/02patron_info.t | 5 ++++- t/SIPtest.pm | 3 ++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Sip/Constants.pm b/Sip/Constants.pm index f210046..dfde788 100644 --- a/Sip/Constants.pm +++ b/Sip/Constants.pm @@ -31,10 +31,10 @@ our (@ISA, @EXPORT_OK, %EXPORT_TAGS); FID_PRINT_LINE FID_DUE_DATE FID_TITLE_ID FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME FID_TERMINAL_LOCN FID_INST_ID FID_CURRENT_LOCN - FID_PERM_LOCN FID_HOLD_ITEMS FID_OVERDUE_ITEMS - FID_CHARGED_ITEMS FID_FINE_ITEMS FID_SEQNO - FID_CKSUM FID_HOME_ADDR FID_EMAIL FID_HOME_PHONE - FID_OWNER FID_CURRENCY FID_CANCEL + FID_PERM_LOCN FID_HOME_LIBRARY FID_HOLD_ITEMS + FID_OVERDUE_ITEMS FID_CHARGED_ITEMS FID_FINE_ITEMS + FID_SEQNO FID_CKSUM FID_HOME_ADDR FID_EMAIL + FID_HOME_PHONE FID_OWNER FID_CURRENCY FID_CANCEL FID_TRANSACTION_ID FID_VALID_PATRON FID_RENEWED_ITEMS FID_UNRENEWED_ITEMS FID_FEE_ACK FID_START_ITEM FID_END_ITEM FID_QUEUE_POS @@ -92,6 +92,7 @@ our (@ISA, @EXPORT_OK, %EXPORT_TAGS); FID_INST_ID FID_CURRENT_LOCN FID_PERM_LOCN + FID_HOME_LIBRARY FID_HOLD_ITEMS FID_OVERDUE_ITEMS FID_CHARGED_ITEMS @@ -158,7 +159,7 @@ our (@ISA, @EXPORT_OK, %EXPORT_TAGS); FID_DUE_DATE FID_TITLE_ID FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME FID_TERMINAL_LOCN FID_INST_ID - FID_CURRENT_LOCN FID_PERM_LOCN + FID_CURRENT_LOCN FID_PERM_LOCN FID_HOME_LIBRARY FID_HOLD_ITEMS FID_OVERDUE_ITEMS FID_CHARGED_ITEMS FID_FINE_ITEMS FID_SEQNO FID_CKSUM FID_HOME_ADDR @@ -259,6 +260,7 @@ use constant { FID_INST_ID => 'AO', FID_CURRENT_LOCN => 'AP', FID_PERM_LOCN => 'AQ', + FID_HOME_LIBRARY => 'AQ', # Extension: AQ in patron info # UNUSED AR FID_HOLD_ITEMS => 'AS', # SIP 2.0 FID_OVERDUE_ITEMS => 'AT', # SIP 2.0 diff --git a/Sip/MsgType.pm b/Sip/MsgType.pm index ce05b93..65843d8 100644 --- a/Sip/MsgType.pm +++ b/Sip/MsgType.pm @@ -959,6 +959,12 @@ sub handle_patron_info { $resp .= maybe_add(FID_EMAIL, $patron->email_addr); $resp .= maybe_add(FID_HOME_PHONE, $patron->home_phone); + # Extension requested by PINES. Report the home system for + # the patron in the 'AQ' field. This is normally the "permanent + # location" field for an ITEM, but it's not used in PATRON info. + # Apparently TLC systems do this. + $resp .= maybe_add(FID_HOME_LIBRARY, $patron->home_library); + $resp .= summary_info($ils, $patron, $summary, $start, $end); $resp .= add_field(FID_VALID_PATRON, 'Y'); diff --git a/t/02patron_info.t b/t/02patron_info.t index 292c279..2185fd5 100644 --- a/t/02patron_info.t +++ b/t/02patron_info.t @@ -9,7 +9,7 @@ use Sip::Constants qw(:all); use SIPtest qw($datepat $textpat $instid $currency $user_barcode $user_pin $user_fullname $user_homeaddr $user_email $user_phone - $user_birthday $user_ptype $user_inet); + $user_birthday $user_ptype $user_inet $user_homelib); # This is a template test case for the Patron Information # message handling. Because of the large number of fields, @@ -63,6 +63,9 @@ my $patron_info_test_template = { { field => FID_INET_PROFILE, pat => qr/^$user_inet$/, required => 1, }, + { field => FID_HOME_LIBRARY, + pat => qr/^$user_homelib$/, + required => 1, }, # Required for this test ], }; my @tests = ( diff --git a/t/SIPtest.pm b/t/SIPtest.pm index dc3d514..6177d03 100644 --- a/t/SIPtest.pm +++ b/t/SIPtest.pm @@ -15,7 +15,7 @@ our @EXPORT_OK = qw(run_sip_tests no_tagged_fields $instid $currency $server $username $password $user_barcode $user_pin $user_fullname $user_homeaddr $user_email $user_phone $user_birthday $user_ptype - $user_inet + $user_inet $user_homelib $item_barcode $item_title $item_owner $item2_barcode $item2_title $item2_owner $item_diacritic_barcode $item_diacritic_title @@ -55,6 +55,7 @@ our $user_phone = '\(519\) 555 1234'; our $user_birthday= '19640925'; our $user_ptype = 'A'; our $user_inet = 'Y'; +our $user_homelib = 'Beacock'; # Valid item barcode and corresponding title our $item_barcode = '1565921879'; -- 2.11.0