From 7d6dba1c02734efb1ed5e39ae23c5c54b7d38072 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 26 Sep 2006 19:01:23 +0000 Subject: [PATCH] ML reporter code, basic functionality exists, needs more git-svn-id: svn://svn.open-ils.org/ILS/trunk@6222 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Reporter.pm | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm b/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm new file mode 100644 index 0000000000..1a1857f888 --- /dev/null +++ b/Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm @@ -0,0 +1,97 @@ +package OpenILS::Application::Reporter; +use base qw/OpenSRF::Application/; +use strict; use warnings; +use OpenILS::Utils::CStoreEditor qw/:funcs/; +use OpenILS::Utils::Fieldmapper; +use OpenILS::Application::AppUtils; +my $U = "OpenILS::Application::AppUtils"; + + +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.folder.create', + method => 'create_folder' +); + +sub create_folder { + my( $self, $conn, $auth, $type, $folder ) = @_; + + my $e = new_rstore_editor(xact=>1, authtoken=>$auth); + return $e->event unless $e->checkauth; + return $e->event unless $e->allowed('RUN_REPORTS'); + + $folder->owner($e->requestor->id); + my $meth = "create_reporter_${type}_folder"; + $e->$meth($folder) or return $e->die_event; + $e->commit; + + return $folder->id; +} + + +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.folder.visible.retrieve', + method => 'retrieve_visible_folders' +); + +sub retrieve_visible_folders { + my( $self, $conn, $auth, $type ) = @_; + 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}_folder"; + my $fs = $e->$meth( { owner => $e->requestor->id } ); + + # XXX fetch folders visible to me + + return $fs; +} + + + +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.folder_data.retrieve', + method => 'retrieve_folder_data' +); + +sub retrieve_folder_data { + my( $self, $conn, $auth, $type, $folderid ) = @_; + 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}"; + return $e->$meth( { folder => $folderid } ); +} + + +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.template.create', + method => 'create_template'); +sub create_template { + my( $self, $conn, $auth, $template ) = @_; + my $e = new_rstore_editor(authtoken=>$auth, xact=>1); + return $e->event unless $e->checkauth; + return $e->event unless $e->allowed('RUN_REPORTS'); + $template->owner($e->requestor->id); + my $tmpl = $e->create_reporter_template($template) + or return $e->die_event; + $e->commit; + return $tmpl; +} + +__PACKAGE__->register_method( + api_name => 'open-ils.reporter.report.create', + method => 'create_report'); +sub create_report { + my( $self, $conn, $auth, $report ) = @_; + my $e = new_rstore_editor(authtoken=>$auth, xact=>1); + return $e->event unless $e->checkauth; + return $e->event unless $e->allowed('RUN_REPORTS'); + $report->owner($e->requestor->id); + my $tmpl = $e->create_reporter_report($report) + or return $e->die_event; + $e->commit; + return $tmpl; +} + +1; -- 2.11.0