source: trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Automatedrequest.pm @ 1827

Last change on this file since 1827 was 1165, checked in by nanardon, 12 years ago

rollback on failure (Automatedrequest)

  • Property svn:executable set to *
File size: 1.5 KB
Line 
1package LATMOS::Accounts::Task::Automatedrequest;
2
3use strict;
4use warnings;
5use base qw(LATMOS::Accounts::Task);
6use LATMOS::Accounts;
7use Config::IniFiles;
8use LATMOS::Accounts::Log;
9use LATMOS::Accounts::Utils;
10
11=head1 NAME
12
13LATMOS::Accounts::Task::Automatedrequest - Task responsible of automatic request
14validation
15
16=cut
17
18sub init {
19    my ($self) = @_;
20    my $LA = LATMOS::Accounts->new($self->{config}, noacl => 1);
21    my $labase = $self->{base} ? $LA->base($self->{base}) : $LA->base;
22    $labase && $labase->load or die "Cannot load base";
23
24    $self->{_la} = $LA;
25    $self->{_base} = $labase;
26
27    1;
28}
29
30sub run {
31    my ($self) = @_;
32
33    foreach my $id ($self->{_base}->list_auto_pending_requests) {
34        my $datarequest = $self->{_base}->get_datarequest($id) or do {
35            $self->{_base}->log(LA_ERR, "Cannot fetch request %d", $id);
36            next;
37        };
38        if ($datarequest->auto_apply_to_object) {
39            $datarequest->base->commit;
40        } else {
41            $datarequest->base->rollback;
42        }
43    }
44
45    1;
46}
47
481;
49
50__END__
51
52=head1 SEE ALSO
53
54L<LATMOS::Accounts::Bases::Sql>, L<LATMOS::Accounts::Bases::Sql::DataRequest>
55
56=head1 AUTHOR
57
58Olivier Thauvin, E<lt>olivier.thauvin@latmos.ipsl.frE<gt>
59
60=head1 COPYRIGHT AND LICENSE
61
62Copyright (C) 2008, 2009, 2010, 2011, 2012 CNRS SA/CETP/LATMOS
63
64This library is free software; you can redistribute it and/or modify
65it under the same terms as Perl itself, either Perl version 5.10.0 or,
66at your option, any later version of Perl 5 you may have available.
67
68=cut
Note: See TracBrowser for help on using the repository browser.