From a16e71730cf86cd48773ffbd8390c65e1dc2fc6a Mon Sep 17 00:00:00 2001 From: Struan Donald Date: Tue, 3 Apr 2012 12:37:54 +0100 Subject: use module::pluggable to get a list of avaible sending modules skip on sending if the sending module isn't available --- perllib/FixMyStreet/DB/ResultSet/Problem.pm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'perllib/FixMyStreet/DB/ResultSet/Problem.pm') 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 ); } -- cgit v1.2.3