added some limiting and sorting support to folder data retrieval
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Oct 2006 04:39:16 +0000 (04:39 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Oct 2006 04:39:16 +0000 (04:39 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@6325 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm

index 30e54a5..dc55725 100644 (file)
@@ -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',