From: Terran McCanna Date: Wed, 24 Aug 2022 16:44:24 +0000 (-0400) Subject: Online Renewal - Create new API instead of piggybacking on vital_stats X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=f644d6ed94a7e1be03733e4a4b5d2abd3285e8e0;p=evergreen%2Fpines.git Online Renewal - Create new API instead of piggybacking on vital_stats New api: open-ils.actor.user.opac.renewal Signed-off-by: Terran McCanna --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm index 4c21c850a9..72ee5a65ac 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm @@ -1961,13 +1961,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') @@ -2006,14 +2000,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, @@ -2035,11 +2073,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) } + } }; }