]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm
survey support
[working/Evergreen.git] / Open-ILS / src / perlmods / OpenILS / Application / Storage / Publisher / action.pm
1 package OpenILS::Application::Storage::Publisher::action;
2 use base qw/OpenILS::Application::Storage/;
3 #use OpenILS::Application::Storage::CDBI::action;
4 #use OpenSRF::Utils::Logger qw/:level/;
5 #use OpenILS::Utils::Fieldmapper;
6 #
7 #my $log = 'OpenSRF::Utils::Logger';
8
9 sub find_opac_surveys {
10         my $self = shift;
11         my $client = shift;
12         my $ou = ''.shift();
13
14         return undef unless ($ou);
15
16         my $select = <<"        SQL";
17                 SELECT  s.*
18                   FROM  action.survey s
19                         JOIN actor.org_unit_full_path(?) p ON (p.id = s.owner)
20                   WHERE CURRENT_DATE BETWEEN s.start_date AND s.end_date
21                         AND s.opac IS TRUE;
22         SQL
23
24         my $sth = action::survey->db_Main->prepare_cached($select);
25         $sth->execute($ou);
26
27         $client->respond( $_->to_fieldmapper ) for ( map { action::survey->construct($_) } $sth->fetchall_hash );
28
29         return undef;
30 }
31 __PACKAGE__->register_method(
32         api_name        => 'open-ils.storage.action.survey.opac',
33         api_level       => 1,
34         stream          => 1,
35         method          => 'find_opac_surveys',
36 );
37
38 sub find_optional_surveys {
39         my $self = shift;
40         my $client = shift;
41         my $ou = ''.shift();
42
43         return undef unless ($ou);
44
45         my $select = <<"        SQL";
46                 SELECT  s.*
47                   FROM  action.survey s
48                         JOIN actor.org_unit_full_path(?) p ON (p.id = s.owner)
49                   WHERE CURRENT_DATE BETWEEN s.start_date AND s.end_date
50                         AND s.required IS FALSE;
51         SQL
52
53         my $sth = action::survey->db_Main->prepare_cached($select);
54         $sth->execute($ou);
55
56         $client->respond( $_->to_fieldmapper ) for ( map { action::survey->construct($_) } $sth->fetchall_hash );
57
58         return undef;
59 }
60 __PACKAGE__->register_method(
61         api_name        => 'open-ils.storage.action.survey.optional',
62         api_level       => 1,
63         stream          => 1,
64         method          => 'find_optional_surveys',
65 );
66
67 sub find_required_surveys {
68         my $self = shift;
69         my $client = shift;
70         my $ou = ''.shift();
71
72         return undef unless ($ou);
73
74         my $select = <<"        SQL";
75                 SELECT  s.*
76                   FROM  action.survey s
77                         JOIN actor.org_unit_full_path(?) p ON (p.id = s.owner)
78                   WHERE CURRENT_DATE BETWEEN s.start_date AND s.end_date
79                         AND s.required IS TRUE;
80         SQL
81
82         my $sth = action::survey->db_Main->prepare_cached($select);
83         $sth->execute($ou);
84
85         $client->respond( $_->to_fieldmapper ) for ( map { action::survey->construct($_) } $sth->fetchall_hash );
86
87         return undef;
88 }
89 __PACKAGE__->register_method(
90         api_name        => 'open-ils.storage.action.survey.required',
91         api_level       => 1,
92         stream          => 1,
93         method          => 'find_required_surveys',
94 );
95
96
97
98
99 1;