aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2015-09-25 17:30:10 +0100
committerMatthew Somerville <matthew@mysociety.org>2015-12-02 17:41:21 +0000
commitbb1e7974955b450520489b93f8ddb6fedaf96008 (patch)
treeeb509af1f0dcc81089c9260304f26a067c717254 /perllib/FixMyStreet/DB
parent361f9e49c2e8c5aee1c4bdb9bd7897bba6f6f06b (diff)
Move EmailSend out of Catalyst for use elsewhere.
Diffstat (limited to 'perllib/FixMyStreet/DB')
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/AlertType.pm21
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Problem.pm4
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm5
3 files changed, 24 insertions, 6 deletions
diff --git a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
index 25c727e25..114f79c6e 100644
--- a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm
@@ -11,11 +11,14 @@ use mySociety::MaPit;
use IO::String;
use RABX;
+use FixMyStreet::Email;
+
# Child must have confirmed, id, email, state(!) columns
# If parent/child, child table must also have name and text
# and foreign key to parent must be PARENT_id
sub email_alerts ($) {
my ( $rs ) = @_;
+ my $schema = $rs->result_source->schema;
my $q = $rs->search( { ref => { -not_like => '%local_problems%' } } );
while (my $alert_type = $q->next) {
@@ -55,7 +58,7 @@ sub email_alerts ($) {
$query = dbh()->prepare($query);
$query->execute();
my $last_alert_id;
- my %data = ( template => $alert_type->template, data => '' );
+ my %data = ( template => $alert_type->template, data => '', schema => $schema );
while (my $row = $query->fetchrow_hashref) {
my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker($row->{alert_cobrand})->new();
@@ -76,7 +79,7 @@ sub email_alerts ($) {
} );
if ($last_alert_id && $last_alert_id != $row->{alert_id}) {
_send_aggregated_alert_email(%data);
- %data = ( template => $alert_type->template, data => '' );
+ %data = ( template => $alert_type->template, data => '', schema => $schema );
}
# create problem status message for the templates
@@ -173,7 +176,16 @@ sub email_alerts ($) {
sprintf("%f", int($d*10+0.5)/10);
};
my $states = "'" . join( "', '", FixMyStreet::DB::Result::Problem::visible_states() ) . "'";
- my %data = ( template => $template, data => '', alert_id => $alert->id, alert_email => $alert->user->email, lang => $alert->lang, cobrand => $alert->cobrand, cobrand_data => $alert->cobrand_data );
+ my %data = (
+ template => $template,
+ data => '',
+ alert_id => $alert->id,
+ alert_email => $alert->user->email,
+ lang => $alert->lang,
+ cobrand => $alert->cobrand,
+ cobrand_data => $alert->cobrand_data,
+ schema => $schema,
+ );
my $q = "select problem.id, problem.bodies_str, problem.postcode, problem.geocode, problem.title from problem_find_nearby(?, ?, ?) as nearby, problem, users
where nearby.problem_id = problem.id
and problem.user_id = users.id
@@ -233,7 +245,8 @@ sub _send_aggregated_alert_email(%) {
my $template = FixMyStreet->get_email_template($cobrand->moniker, $data{lang}, "$data{template}.txt");
- my $result = FixMyStreet::App->send_email_cron(
+ my $result = FixMyStreet::Email::send_cron(
+ $data{schema},
{
_template_ => $template,
_parameters_ => \%data,
diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
index e9f5d0f8e..0c2811b7b 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
@@ -11,6 +11,7 @@ use mySociety::Config;
use mySociety::MaPit;
use FixMyStreet::App;
+use FixMyStreet::Email;
use FixMyStreet::SendReport;
my $site_key;
@@ -513,7 +514,8 @@ sub _send_report_sent_email {
my $template = FixMyStreet->get_email_template($row->cobrand, $row->lang, 'confirm_report_sent.txt');
- FixMyStreet::App->send_email_cron(
+ FixMyStreet::Email::send_cron(
+ $row->result_source->schema,
{
_template_ => $template,
_parameters_ => $h,
diff --git a/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm b/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm
index bf1c68c49..f9d32f2c1 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm
@@ -6,6 +6,8 @@ use warnings;
use Encode;
use Utils;
+use FixMyStreet::Email;
+
sub send_questionnaires {
my ( $rs, $params ) = @_;
$rs->send_questionnaires_period( '4 weeks', $params );
@@ -89,7 +91,8 @@ sub send_questionnaires_period {
. $row->user->email . "\n"
if $params->{verbose};
- my $result = FixMyStreet::App->send_email_cron(
+ my $result = FixMyStreet::Email::send_cron(
+ $rs->result_source->schema,
{
_template_ => $template,
_parameters_ => \%h,