LP1728331: A/T Aggregator Date Parameter
authorJason Boyer <jboyer@library.in.gov>
Tue, 20 Feb 2018 19:51:21 +0000 (14:51 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Fri, 6 Sep 2019 21:45:45 +0000 (17:45 -0400)
Adds a --date parameter to action_trigger_aggregator.pl
to make it simpler to pull events for a single day when
that day isn't "today."

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>

Open-ILS/src/support-scripts/action_trigger_aggregator.pl

index 726b30c..20e30a8 100755 (executable)
@@ -24,7 +24,9 @@ use OpenILS::Utils::RemoteAccount;
 use OpenILS::Utils::Fieldmapper;
 
 my $osrf_config = '/openils/conf/opensrf_core.xml';
-my $start_date  = DateTime->now->strftime('%F');
+my $default_start_date = DateTime->now->strftime('%F');
+my $date        = '';
+my $start_date  = '';
 my $end_date    = '';
 my $event_defs  = '';
 my $granularity = '';
@@ -37,6 +39,7 @@ my $help        = 0;
 
 GetOptions(
     'osrf-config=s'     => \$osrf_config,
+    'date=s'            => \$date,
     'start-date=s'      => \$start_date,
     'end-date=s'        => \$end_date,
     'event-defs=s'      => \$event_defs,
@@ -93,6 +96,10 @@ Options
     --end-date 
         Only collect output for events whose run_time occurred before this ISO date
 
+    --date
+        Only collect output for events whose run_time is on this ISO date.
+        Cannot be used with either --start-date or --end-date
+
     --osrf-config
         To set the OpenSRF config to something other than the default of
         '/openils/conf/opensrf_core.xml'
@@ -154,6 +161,10 @@ if ($granularity) {
 
 print "Processing event-defs @event_defs\n" if $verbose;
 
+die "Can't use --date with --start-date or --end-date!" if ($date && ($start_date || $end_date) );
+
+$start_date = $default_start_date unless $start_date; # This is basically what happened pre- --date
+
 my %date_filter;
 $date_filter{run_time} = {'>=' => $start_date} if $start_date;
 
@@ -168,7 +179,11 @@ if ($end_date) {
         $date_filter{run_time} = {'<' => $end_date};
     }
 }
-                
+
+if ($date) {
+    delete $date_filter{run_time}; # will always exist because of defaulting $start_date
+    $date_filter{run_time} = { "=" => {"transform" => "date", "value" => $date}};
+}
 
 # collect the event tempate output data
 # use a real session here so we can stream results directly to the output file