Pass authtoken to OpenILS::SIP::Patron objects
authorJeff Godin <jgodin@tadl.org>
Tue, 19 Jun 2012 19:10:07 +0000 (15:10 -0400)
committerJeff Godin <jgodin@tadl.org>
Tue, 19 Jun 2012 20:51:25 +0000 (16:51 -0400)
To support retrieval of billing details, OpenILS::SIP::Patron
objects need an auth token.

Teach OpenILS::SIP->find_patron to pass patron objects an auth
token, and also move existing "find patron by what key: barcode or
database id?" logic into find_patron (and out of
OpenILS::SIP::Patron->new).

Signed-off-by: Jeff Godin <jgodin@tadl.org>
Open-ILS/src/perlmods/lib/OpenILS/SIP.pm
Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm

index fe312ff..489832d 100644 (file)
@@ -225,10 +225,17 @@ sub login {
        return $self->{authtoken} = $key;
 }
 
+#
+# find_patron($barcode);
+# find_patron(barcode => $barcode);   # same as above
+# find_patron(usr => $id);
 
 sub find_patron {
        my $self = shift;
-       return OpenILS::SIP::Patron->new(@_);
+    my $key  =  (@_ > 1) ? shift : 'barcode';  # if we have multiple args, the first is the key index (default barcode)
+    my $patron_id = shift;
+
+       return OpenILS::SIP::Patron->new($key => $patron_id, authtoken => $self->{authtoken}, @_);
 }
 
 
index ca89650..bcdce5a 100644 (file)
@@ -29,14 +29,9 @@ our (@ISA, @EXPORT_OK);
 
 my $INET_PRIVS;
 
-#
-# OpenILS::SIP::Patron->new($barcode);
-# OpenILS::SIP::Patron->new(barcode => $barcode);   # same as above
-# OpenILS::SIP::Patron->new(    usr => $id);       
-
 sub new {
     my $class = shift;
-    my $key   = (@_ > 1) ? shift : 'barcode';  # if we have multiple args, the first is the key index (default barcode)
+    my $key   = shift;
     my $patron_id = shift;
     my %args = @_;
 
@@ -118,6 +113,7 @@ sub new {
 
     $self->flesh_user_penalties($user, $e) unless $args{slim_user};
 
+    $self->{authtoken} = $args{authtoken} if $args{authtoken};
     $self->{editor} = $e;
     $self->{user}   = $user;
     $self->{id}     = ($key eq 'barcode') ? $patron_id : $user->card->barcode;   # The barcode IS the ID to SIP.