From 810759ae13d7dca1b16f36841ca7d364c1738cb5 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Tue, 26 Apr 2016 12:16:26 +0100 Subject: Skip fetched updates if they're out of date range. Even when we ask for a specific range of dates, we sometimes get given more in the response. --- perllib/Open311/GetServiceRequestUpdates.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'perllib/Open311/GetServiceRequestUpdates.pm') diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm index 11bc1e64f..daa5fb64d 100644 --- a/perllib/Open311/GetServiceRequestUpdates.pm +++ b/perllib/Open311/GetServiceRequestUpdates.pm @@ -89,6 +89,13 @@ sub update_comments { # what problem it belongs to so just skip next unless $request_id; + my $comment_time = eval { + DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} || "" ); + }; + next if $@; + my $updated = DateTime::Format::W3CDTF->format_datetime($comment_time->clone->set_time_zone('UTC')); + next if @args && ($updated lt $args[0] || $updated gt $args[1]); + my $problem; my $criteria = { external_id => $request_id, @@ -99,8 +106,6 @@ sub update_comments { my $c = $p->comments->search( { external_id => $request->{update_id} } ); if ( !$c->first ) { - my $comment_time = DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} ); - my $comment = $self->schema->resultset('Comment')->new( { problem => $p, -- cgit v1.2.3