From: Bill Erickson Date: Wed, 26 Jan 2011 13:37:50 +0000 (-0500) Subject: added call args to open-ils.circ.hold.details.*.retrieve to allow the caller to scale... X-Git-Tag: opac-tt-poc-demo2~94 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a6f2181892b72685dbaf4beb0d35a7dad5e1acbe;p=evergreen%2Fequinox.git added call args to open-ils.circ.hold.details.*.retrieve to allow the caller to scale back the returned data set --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm index c95bafe6f2..f2a20062a4 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm @@ -2629,10 +2629,10 @@ __PACKAGE__->register_method( ); sub uber_hold { - my($self, $client, $auth, $hold_id) = @_; + my($self, $client, $auth, $hold_id, $args) = @_; my $e = new_editor(authtoken=>$auth); $e->checkauth or return $e->event; - return uber_hold_impl($e, $hold_id); + return uber_hold_impl($e, $hold_id, $args); } __PACKAGE__->register_method( @@ -2643,17 +2643,18 @@ __PACKAGE__->register_method( ); sub batch_uber_hold { - my($self, $client, $auth, $hold_ids) = @_; + my($self, $client, $auth, $hold_ids, $args) = @_; my $e = new_editor(authtoken=>$auth); $e->checkauth or return $e->event; - $client->respond(uber_hold_impl($e, $_)) for @$hold_ids; + $client->respond(uber_hold_impl($e, $_, $args)) for @$hold_ids; return undef; } sub uber_hold_impl { - my($e, $hold_id) = @_; + my($e, $hold_id, $args) = @_; my $resp = {}; + $args ||= {}; my $hold = $e->retrieve_action_hold_request( [ @@ -2682,27 +2683,33 @@ sub uber_hold_impl { my $user = $hold->usr; $hold->usr($user->id); - my $card = $e->retrieve_actor_card($user->card) - or return $e->event; - my( $mvr, $volume, $copy ) = find_hold_mvr($e, $hold); + my( $mvr, $volume, $copy, $issuance, $bre ) = find_hold_mvr($e, $hold, $args->{suppress_mvr}); - flesh_hold_notices([$hold], $e); - flesh_hold_transits([$hold]); + flesh_hold_notices([$hold], $e) unless $args->{suppress_notices}; + flesh_hold_transits([$hold]) unless $args->{suppress_transits}; my $details = retrieve_hold_queue_status_impl($e, $hold); - return { + my $resp = { hold => $hold, copy => $copy, volume => $volume, - mvr => $mvr, - patron_first => $user->first_given_name, - patron_last => $user->family_name, - patron_barcode => $card->barcode, - patron_alias => $user->alias, %$details }; + + $resp->{mvr} = $mvr unless $args->{suppress_mvr}; + unless($args->{suppress_patron_details}) { + my $card = $e->retrieve_actor_card($user->card) or return $e->event; + $resp->{patron_first} = $user->first_given_name, + $resp->{patron_last} = $user->family_name, + $resp->{patron_barcode} = $card->barcode, + $resp->{patron_alias} = $user->alias, + }; + + $resp->{bre} = $bre if $args->{include_bre}; + + return $resp; } @@ -2712,7 +2719,7 @@ sub uber_hold_impl { # hold is all about # ----------------------------------------------------- sub find_hold_mvr { - my( $e, $hold ) = @_; + my( $e, $hold, $no_mvr ) = @_; my $tid; my $copy; @@ -2761,7 +2768,7 @@ sub find_hold_mvr { # TODO return metarcord mvr for M holds my $title = $e->retrieve_biblio_record_entry($tid); - return ( $U->record_to_mvr($title), $volume, $copy, $issuance ); + return ( ($no_mvr) ? undef : $U->record_to_mvr($title), $volume, $copy, $issuance, $title ); } __PACKAGE__->register_method(