Online Renewal - Create new API instead of piggybacking on vital_stats
authorTerran McCanna <tmccanna@georgialibraries.org>
Wed, 24 Aug 2022 16:44:24 +0000 (12:44 -0400)
committerTerran McCanna <tmccanna@georgialibraries.org>
Wed, 24 Aug 2022 16:44:24 +0000 (12:44 -0400)
New api: open-ils.actor.user.opac.renewal

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm

index 08b03f5..1d67eb9 100644 (file)
@@ -1870,13 +1870,7 @@ sub user_opac_vitals {
 
     $user_id ||= $e->requestor->id;
 
-    # PINES ecard project - flesh user object to get barcode & addresses
-    my $user = $e->retrieve_actor_user([ $user_id, {
-        flesh => 1,
-        flesh_fields => {
-            au => ['card', 'billing_address', 'mailing_address']
-        }
-        }]);
+    my $user = $e->retrieve_actor_user( $user_id );
 
     my ($fines) = $self
         ->method_lookup('open-ils.actor.user.fines.summary')
@@ -1909,14 +1903,58 @@ sub user_opac_vitals {
     ]);
 
     return {
-        # PINES Ecard project adds: preferred name fields, phone, email, home library,
-        # billing address, mailing address, current barcode
         user => {
             first_given_name  => $user->first_given_name,
             second_given_name => $user->second_given_name,
             family_name       => $user->family_name,
             alias             => $user->alias,
-            usrname           => $user->usrname,
+            usrname           => $user->usrname
+        },
+        fines => $fines->to_bare_hash,
+        checkouts => $out,
+        holds => $holds,
+        messages => { unread => scalar(@$unread_msgs) }
+    };
+}
+
+# PINES ECARD RENEWAL INFO API
+__PACKAGE__->register_method(
+    method        => "user_opac_renewal",
+    api_name      => "open-ils.actor.user.opac.renewal",
+    argc          => 1,
+    authoritative => 1,
+    signature     => {
+        desc   => 'Returns minimal patron info for 3rd party renewal',
+        params => [
+            {desc => 'Authentication token',                          type => 'string'},
+            {desc => 'Optional User ID, for use in the staff client', type => 'number'}  # number?
+        ],
+        return => {
+            desc => "A user object."
+        }
+    }
+);
+
+sub user_opac_renewal {
+    my( $self, $client, $auth, $user_id ) = @_;
+
+    my $e = new_editor(authtoken=>$auth);
+    return $e->event unless $e->checkauth;
+
+    $user_id ||= $e->requestor->id;
+
+    my $user = $e->retrieve_actor_user([ $user_id, {
+        flesh => 1,
+        flesh_fields => {
+            au => ['card', 'billing_address', 'mailing_address']
+        }
+        }]);
+
+    return {
+        user => {
+            first_given_name  => $user->first_given_name,
+            second_given_name => $user->second_given_name,
+            family_name       => $user->family_name,
             pref_first_given_name => $user->pref_first_given_name,
             pref_second_given_name => $user->pref_second_given_name,
             pref_family_name  => $user->pref_family_name,
@@ -1938,11 +1976,7 @@ sub user_opac_vitals {
             mailing_county    => $user->mailing_address->county,
             mailing_state     => $user->mailing_address->state,
             mailing_country   => $user->mailing_address->country
-        },
-        fines => $fines->to_bare_hash,
-        checkouts => $out,
-        holds => $holds,
-        messages => { unread => scalar(@$unread_msgs) }
+        }
     };
 }