]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Cleanup.pm
Lp 1835035: Refactor auto_renewal back end code
[working/Evergreen.git] / Open-ILS / src / perlmods / lib / OpenILS / Application / Trigger / Cleanup.pm
1 package OpenILS::Application::Trigger::Cleanup;
2 use strict; use warnings;
3 use OpenILS::Utils::CStoreEditor q/:funcs/;
4 use OpenSRF::Utils::Logger qw/:logger/;
5 use OpenILS::Utils::Fieldmapper;
6
7 sub fourty_two { return 42 }
8 sub NOOP_True { return 1 }
9 sub NOOP_False { return 0 }
10
11 sub DeleteTempBiblioBucket {
12     my($self, $env) = @_;
13     my $e = new_editor(xact => 1);
14     my $buckets = $env->{target};
15
16     for my $bucket (@$buckets) {
17
18         foreach my $item (@{ $bucket->items }) {
19             $e->delete_container_biblio_record_entry_bucket_item($item);
20         }
21
22         $e->delete_container_biblio_record_entry_bucket($bucket);
23     }
24
25     $e->commit or $e->die_event;
26
27     return 1;
28 }
29
30 # This is really more of an auxillary reactor
31 sub CreateHoldNotification {
32     my ($self, $env) = @_;
33     my $e = new_editor(xact => 1);
34     my $holds = $env->{target};
35
36     my $event_def = (ref $env->{event} eq 'ARRAY') ?
37         $env->{event}->[0]->event_def : # event_def is grouped
38         $env->{event}->event_def;
39
40     for my $hold (@$holds) {
41
42         my $notify = Fieldmapper::action::hold_notification->new;
43         $notify->hold($hold->id);
44         $notify->method($event_def->reactor);
45
46         unless($e->create_action_hold_notification($notify)) {
47             $e->rollback;
48             return 0;
49         }
50     }
51
52     return 1 if $e->commit;
53     $e->rollback;
54     return 0;
55 }
56
57 1;