]> git.proxmox.com Git - pmg-api.git/commitdiff
api tracker: raise parameter exception if endtime was older than starttime
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 24 Apr 2020 16:54:40 +0000 (18:54 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 24 Apr 2020 16:54:40 +0000 (18:54 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PMG/API2/MailTracker.pm

index 0d5f9fd71160873afd5e3f9ca47c90c991927197..d512dd99d52fd0c79f5e2c899f7f54495516de47 100644 (file)
@@ -11,12 +11,21 @@ use Encode;
 use PVE::Tools;
 use PVE::SafeSyslog;
 use PVE::RESTHandler;
+use PVE::Exception qw(raise_param_exc);
 use PVE::JSONSchema qw(get_standard_option);
 
 use PMG::RESTEnvironment;
 
 use base qw(PVE::RESTHandler);
 
+my $get_start_end_time = sub {
+    my ($param) = @_;
+    my $start = $param->{starttime} // (time - 86400);
+    my $end = $param->{endtime} // ($start + 86400);
+    raise_param_exc({'endtime' => "must be newer than 'starttime'"}) if $start > $end;
+    return ($start, $end);
+};
+
 my $statmap = {
     2 => 'delivered',
     4 => 'deferred',
@@ -321,8 +330,7 @@ __PACKAGE__->register_method({
 
        my $args = [];
 
-       my $start = $param->{starttime} // (time - 86400);
-       my $end = $param->{endtime} // ($start + 86400);
+       my ($start, $end) = $get_start_end_time->($param);
 
        push @$args, '-s', $start;
        push @$args, '-e', $end;
@@ -392,8 +400,7 @@ __PACKAGE__->register_method({
 
        my $args = ['-v'];
 
-       my $start = $param->{starttime} // (time - 86400);
-       my $end = $param->{endtime} // ($start + 86400);
+       my ($start, $end) = $get_start_end_time->($param);
 
        push @$args, '-s', $start;
        push @$args, '-e', $end;