aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Problem.pm10
-rw-r--r--perllib/FixMyStreet/SendReport.pm13
2 files changed, 22 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
index 0b49a4557..ae184e87b 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
@@ -12,7 +12,7 @@ use mySociety::EmailUtil;
use mySociety::MaPit;
use FixMyStreet::App;
-use FixMyStreet::SendReport::Email;
+use FixMyStreet::SendReport;
my $site_restriction;
my $site_key;
@@ -231,6 +231,10 @@ sub send_reports {
council => { '!=', undef },
} );
my (%notgot, %note);
+
+ my $s = FixMyStreet::SendReport->new();
+ my $senders = $s->get_senders;
+
while (my $row = $unsent->next) {
my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker($row->cobrand)->new();
@@ -312,6 +316,10 @@ sub send_reports {
push @dear, $name;
my $sender = $cobrand->get_council_sender( $council, $areas_info->{$council} );
$sender = "FixMyStreet::SendReport::$sender";
+ if ( ! exists $senders->{ $sender } ) {
+ warn "No such sender [ $sender ] for council $name ( $council )";
+ next;
+ }
$reporters{ $sender } = $sender->new() unless $reporters{$sender};
$reporters{ $sender }->add_council( $council, $name );
}
diff --git a/perllib/FixMyStreet/SendReport.pm b/perllib/FixMyStreet/SendReport.pm
index f2ebdd3d7..84a89f877 100644
--- a/perllib/FixMyStreet/SendReport.pm
+++ b/perllib/FixMyStreet/SendReport.pm
@@ -2,9 +2,22 @@ package FixMyStreet::SendReport;
use Moose;
+use Module::Pluggable
+ sub_name => 'senders',
+ search_path => __PACKAGE__,
+ require => 1;
+
has 'councils' => (is => 'rw', isa => 'HashRef', default => sub { {} } );
has 'to' => (is => 'rw', isa => 'ArrayRef', default => sub { [] } );
+sub get_senders {
+ my $self = shift;
+
+ my %senders = map { $_ => 1 } $self->senders;
+
+ return \%senders;
+}
+
sub reset {
my $self = shift;