From 9d00c0a4d19750c0f12757eff65d24ce58fc18a1 Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 2 Oct 2006 04:39:16 +0000 Subject: [PATCH] added some limiting and sorting support to folder data retrieval git-svn-id: svn://svn.open-ils.org/ILS/trunk@6325 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Reporter.pm | 41 ++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm b/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm index 30e54a5416..dc55725536 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm @@ -77,17 +77,54 @@ __PACKAGE__->register_method( ); sub retrieve_folder_data { - my( $self, $conn, $auth, $type, $folderid ) = @_; + my( $self, $conn, $auth, $type, $folderid, $limit ) = @_; my $e = new_rstore_editor(authtoken=>$auth); return $e->event unless $e->checkauth; return $e->event unless $e->allowed('RUN_REPORTS'); my $meth = "search_reporter_${type}"; my $class = 'rr'; $class = 'rt' if $type eq 'template'; - my $flesh = {flesh => 1,flesh_fields => { $class => ['owner']}}; + my $flesh = { + flesh => 1, + flesh_fields => { $class => ['owner']}, + order_by => { $class => 'create_time DESC'} + }; + $flesh->{limit} = $limit if $limit; return $e->$meth([{ folder => $folderid }, $flesh]); } +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.schedule.retrieve_by_folder', + method => 'retrieve_schedules'); +sub retrieve_schedules { + my( $self, $conn, $auth, $folderId, $limit ) = @_; + my $e = new_rstore_editor(authtoken=>$auth); + return $e->event unless $e->checkauth; + return $e->event unless $e->allowed('RUN_REPORTS'); + + my $search = { folder => $folderId }; + my $query = [ + { folder => $folderId }, + { order_by => { rs => 'run_time DESC' } } + ]; + + $query->[1]->{limit} = $limit if $limit; + return $e->search_reporter_schedule($query); +} + +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.schedule.retrieve', + method => 'retrieve_schedules'); +sub retrieve_schedule { + my( $self, $conn, $auth, $sched_id ) = @_; + my $e = new_rstore_editor(authtoken=>$auth); + return $e->event unless $e->checkauth; + return $e->event unless $e->allowed('RUN_REPORTS'); + my $s = $e->retrieve_reporter_schedule($sched_id) + or return $e->event; + return $s; +} + __PACKAGE__->register_method( api_name => 'open-ils.reporter.template.create', -- 2.11.0