Add option to send database id in LookupUser respones message. user/dyrcona/return-dbid-lookupuser
authorJason Stephenson <jason@sigio.com>
Thu, 6 Dec 2018 18:29:29 +0000 (13:29 -0500)
committerJason Stephenson <jason@sigio.com>
Thu, 6 Dec 2018 18:29:29 +0000 (13:29 -0500)
Autographics is planning to implement better tracking of users who
change barcodes or have more than one barcode.  To implement this
feature they have asked us to return the user's unique database id
instead of the barcode in the LookupUser response message.  They will
use the database id to track the user on their side, and use the
barcode that the patron entered in all other requests.

Signed-off-by: Jason Stephenson <jason@sigio.com>
examples/oils_ncip.xml.example
lib/NCIP/ILS/Evergreen.pm

index 95b240d..abe3c2e 100644 (file)
         configuration load times and still have the group name as a
         reminder to the person that edits the configuration.
     -->
+    <!--
+      Uncomment the below to return the patron's database id in
+      LookupUser responses, instead of the barcode.  This is an
+      Autographics extension.
+    -->
+    <!-- <lookupuser_send_database_id/> -->
   </patrons>
   <holds>
     <!--
index 3fc3ff1..e0f3cc4 100644 (file)
@@ -164,9 +164,12 @@ sub lookupuser {
     my $userdata = NCIP::User->new();
 
     # Use the user's main card as the UserId.
+    my $idType = ($self->{lookupuser_send_database_id}) ? 'UniqueID' : 'Barcode';
+    my $idValue = ($self->{lookupuser_send_database_id}) ? $user->id()
+        : $user->card->barcode() || $barcode;
     my $id = NCIP::User::Id->new({
-        UserIdentifierType => 'Barcode',
-        UserIdentifierValue => $user->card->barcode() || $barcode
+        UserIdentifierType => $idType,
+        UserIdentifierValue => $idValue
     });
     $userdata->UserId($id);
 
@@ -2917,6 +2920,11 @@ sub _init {
             }
             push(@{$self->{blocked_profiles}}, $pgt) if ($pgt);
         }
+        if ($self->{config}->{patrons}->{lookupuser_send_database_id}) {
+            $self->{lookupuser_send_database_id} = 1;
+        } else {
+            $self->{lookupuser_send_database_id} = 0;
+        }
     }
 
     # Load the bib source if we're not using precats.