diff options
Diffstat (limited to 'perllib/FixMyStreet/SendReport.pm')
-rw-r--r-- | perllib/FixMyStreet/SendReport.pm | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/perllib/FixMyStreet/SendReport.pm b/perllib/FixMyStreet/SendReport.pm index db95850e6..c08a7ddbe 100644 --- a/perllib/FixMyStreet/SendReport.pm +++ b/perllib/FixMyStreet/SendReport.pm @@ -15,25 +15,9 @@ has 'to' => ( is => 'rw', isa => ArrayRef, default => sub { [] } ); has 'bcc' => ( is => 'rw', isa => ArrayRef, default => sub { [] } ); has 'success' => ( is => 'rw', isa => Bool, default => 0 ); has 'error' => ( is => 'rw', isa => Str, default => '' ); -has 'unconfirmed_counts' => ( 'is' => 'rw', isa => HashRef, default => sub { {} } ); -has 'unconfirmed_notes' => ( 'is' => 'rw', isa => HashRef, default => sub { {} } ); +has 'unconfirmed_data' => ( 'is' => 'rw', isa => HashRef, default => sub { {} } ); -sub should_skip { - my $self = shift; - my $row = shift; - my $debug = shift; - - return 0 unless $row->send_fail_count; - return 0 if $debug; - - my $now = DateTime->now( time_zone => FixMyStreet->local_time_zone ); - my $diff = $now - $row->send_fail_timestamp; - - my $backoff = $row->send_fail_count > 1 ? 30 : 5; - return $diff->in_units( 'minutes' ) < $backoff; -} - sub get_senders { my $self = shift; @@ -60,4 +44,21 @@ sub add_body { $self->body_config->{ $body->id } = $config; } +sub fetch_category { + my ($self, $body, $row, $category_override) = @_; + + my $contact = $row->result_source->schema->resultset("Contact")->find( { + body_id => $body->id, + category => $category_override || $row->category, + } ); + + unless ($contact) { + my $error = "Category " . $row->category . " does not exist for body " . $body->id . " and report " . $row->id . "\n"; + $self->error( "Failed to send over Open311\n" ) unless $self->error; + $self->error( $self->error . "\n" . $error ); + } + + return $contact; +} + 1; |