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;
83 __PACKAGE__->register_method(
84 api_name => 'open-ils.reporter.report.create',
85 method => 'create_report');
87 my( $self, $conn, $auth, $report ) = @_;
88 my $e = new_rstore_editor(authtoken=>$auth, xact=>1);
89 return $e->event unless $e->checkauth;
90 return $e->event unless $e->allowed('RUN_REPORTS');
91 $report->owner($e->requestor->id);
92 my $tmpl = $e->create_reporter_report($report)
93 or return $e->die_event;
99 __PACKAGE__->register_method(
100 api_name => 'open-ils.reporter.template.retrieve',
101 method => 'retrieve_template');
102 sub retrieve_template {
103 my( $self, $conn, $auth, $id ) = @_;
104 my $e = new_rstore_editor(authtoken=>$auth);
105 return $e->event unless $e->checkauth;
106 return $e->event unless $e->allowed('RUN_REPORTS');
107 my $t = $e->retrieve_reporter_template($id)
113 __PACKAGE__->register_method(
114 api_name => 'open-ils.reporter.report.retrieve',
115 method => 'retrieve_report');
116 sub retrieve_report {
117 my( $self, $conn, $auth, $id ) = @_;
118 my $e = new_rstore_editor(authtoken=>$auth);
119 return $e->event unless $e->checkauth;
120 return $e->event unless $e->allowed('RUN_REPORTS');
121 my $r = $e->retrieve_reporter_report($id)