]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Reporter.pm
added retrieval methods for templates and reports by id
[Evergreen.git] / Open-ILS / src / perlmods / OpenILS / Application / Reporter.pm
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";
8
9
10 __PACKAGE__->register_method(
11         api_name => 'open-ils.reporter.folder.create',
12         method => 'create_folder'
13 );
14
15 sub create_folder {
16         my( $self, $conn, $auth, $type, $folder ) = @_;
17
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');
21
22         $folder->owner($e->requestor->id);
23         my $meth = "create_reporter_${type}_folder";
24         $e->$meth($folder) or return $e->die_event;
25         $e->commit;
26
27         return $folder->id;
28 }
29
30
31 __PACKAGE__->register_method(
32         api_name => 'open-ils.reporter.folder.visible.retrieve',
33         method => 'retrieve_visible_folders'
34 );
35
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');
41
42         my $meth = "search_reporter_${type}_folder";
43         my $fs = $e->$meth( { owner => $e->requestor->id } );
44
45         # XXX fetch folders visible to me
46
47         return $fs;
48 }
49
50
51
52 __PACKAGE__->register_method(
53         api_name => 'open-ils.reporter.folder_data.retrieve',
54         method => 'retrieve_folder_data'
55 );
56
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 } );
64 }
65
66
67 __PACKAGE__->register_method(
68         api_name => 'open-ils.reporter.template.create',
69         method => 'create_template');
70 sub 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;
78         $e->commit;
79         return $tmpl;
80 }
81
82
83 __PACKAGE__->register_method(
84         api_name => 'open-ils.reporter.report.create',
85         method => 'create_report');
86 sub 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;
94         $e->commit;
95         return $tmpl;
96 }
97
98
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) 
108                 or return $e->event;
109         return $t;
110 }
111
112
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) 
122                 or return $e->event;
123         return $r;
124 }
125
126
127 1;