From: erickson Date: Mon, 16 Mar 2009 16:46:48 +0000 (+0000) Subject: added method to return trigger events by user and type X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=eb1bcc1b18d65a29ac8818b74a2cce6c010dc98b;p=evergreen%2Ftadl.git added method to return trigger events by user and type git-svn-id: svn://svn.open-ils.org/ILS/trunk@12542 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index acdb014800..5c894f7363 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -3178,5 +3178,47 @@ sub update_user_pending_address { } +__PACKAGE__->register_method ( + method => 'user_events', + api_name => 'open-ils.actor.user.events.circ', + stream => 1, +); +__PACKAGE__->register_method ( + method => 'user_events', + api_name => 'open-ils.actor.user.events.ahr', + stream => 1, +); + +sub user_events { + my($self, $conn, $auth, $user_id, $filters) = @_; + my $e = new_editor(authtoken => $auth); + return $e->event unless $e->checkauth; + + (my $obj_type = $self->api_name) =~ s/.*\.([a-z]+)$/$1/; + my $user_field = 'usr'; + + $filters ||= {}; + $filters->{target} = { + select => { $obj_type => ['id'] }, + from => $obj_type, + where => {usr => $user_id} + }; + + my $user = $e->retrieve_actor_user($user_id) or return $e->event; + if($e->requestor->id != $user_id) { + return $e->event unless $e->allowed('VIEW_USER', $user->home_ou); + } + + my $ses = OpenSRF::AppSession->create('open-ils.trigger'); + my $req = $ses->request('open-ils.trigger.events_by_target', $obj_type, $filters); + while(my $resp = $req->recv) { + my $val = $resp->content; + $conn->respond($val) if $val; + } + + return undef; +} + + 1;