1 package OpenILS::Application::Reporter;
2 use base qw/OpenSRF::Application/;
3 use strict; use warnings;
4 use OpenILS::Utils::CStoreEditor qw/:funcs/;
5 use OpenILS::Utils::Fieldmapper;
6 use OpenILS::Application::AppUtils;
7 my $U = "OpenILS::Application::AppUtils";
10 __PACKAGE__->register_method(
11 api_name => 'open-ils.reporter.folder.create',
12 method => 'create_folder'
16 my( $self, $conn, $auth, $type, $folder ) = @_;
18 my $e = new_rstore_editor(xact=>1, authtoken=>$auth);
19 return $e->event unless $e->checkauth;
20 return $e->event unless $e->allowed('RUN_REPORTS');
22 $folder->owner($e->requestor->id);
23 my $meth = "create_reporter_${type}_folder";
24 $e->$meth($folder) or return $e->die_event;
31 __PACKAGE__->register_method(
32 api_name => 'open-ils.reporter.folder.visible.retrieve',
33 method => 'retrieve_visible_folders'
36 sub retrieve_visible_folders {
37 my( $self, $conn, $auth, $type ) = @_;
38 my $e = new_rstore_editor(authtoken=>$auth);
39 return $e->event unless $e->checkauth;
40 return $e->event unless $e->allowed('RUN_REPORTS');
42 my $meth = "search_reporter_${type}_folder";
43 my $fs = $e->$meth( { owner => $e->requestor->id } );
45 # XXX fetch folders visible to me
52 __PACKAGE__->register_method(
53 api_name => 'open-ils.reporter.folder_data.retrieve',
54 method => 'retrieve_folder_data'
57 sub retrieve_folder_data {
58 my( $self, $conn, $auth, $type, $folderid ) = @_;
59 my $e = new_rstore_editor(authtoken=>$auth);
60 return $e->event unless $e->checkauth;
61 return $e->event unless $e->allowed('RUN_REPORTS');
62 my $meth = "search_reporter_${type}";
63 return $e->$meth( { folder => $folderid } );
67 __PACKAGE__->register_method(
68 api_name => 'open-ils.reporter.template.create',
69 method => 'create_template');
71 my( $self, $conn, $auth, $template ) = @_;
72 my $e = new_rstore_editor(authtoken=>$auth, xact=>1);
73 return $e->event unless $e->checkauth;
74 return $e->event unless $e->allowed('RUN_REPORTS');
75 $template->owner($e->requestor->id);
76 my $tmpl = $e->create_reporter_template($template)
77 or return $e->die_event;
82 __PACKAGE__->register_method(
83 api_name => 'open-ils.reporter.report.create',
84 method => 'create_report');
86 my( $self, $conn, $auth, $report ) = @_;
87 my $e = new_rstore_editor(authtoken=>$auth, xact=>1);
88 return $e->event unless $e->checkauth;
89 return $e->event unless $e->allowed('RUN_REPORTS');
90 $report->owner($e->requestor->id);
91 my $tmpl = $e->create_reporter_report($report)
92 or return $e->die_event;