diff options
author | Matthew Somerville <matthew@mysociety.org> | 2015-09-25 22:35:39 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2015-12-02 17:41:35 +0000 |
commit | 55412b79394ff1b1cabe368aed67fa8f68680ecc (patch) | |
tree | 33657093517818b8ba60f156484ec540f9c4af17 | |
parent | 0c2a792b154e1b28528db887bbde80b19268b9fe (diff) |
Reduce use of FixMyStreet::App.
Command line scripts don't need a full blown app, just database.
64 files changed, 284 insertions, 292 deletions
diff --git a/bin/fetch-comments b/bin/fetch-comments index 4eb9def14..55ba70d85 100755 --- a/bin/fetch-comments +++ b/bin/fetch-comments @@ -15,14 +15,11 @@ BEGIN { require "$d/../setenv.pl"; } -use FixMyStreet::App; use CronFns; my ($verbose, $nomail) = CronFns::options(); -use Open311; use Open311::GetServiceRequestUpdates; - my $updates = Open311::GetServiceRequestUpdates->new( verbose => $verbose ); $updates->fetch; diff --git a/bin/fetch-comments-24hs b/bin/fetch-comments-24hs index 27853bcc1..df208439e 100755 --- a/bin/fetch-comments-24hs +++ b/bin/fetch-comments-24hs @@ -19,11 +19,9 @@ BEGIN { use DateTime; use DateTime::Format::W3CDTF; -use FixMyStreet::App; use CronFns; my ($verbose, $nomail) = CronFns::options(); -use Open311; use Open311::GetServiceRequestUpdates; my $dt = DateTime->now(); diff --git a/bin/fiksgatami/showroadinfo b/bin/fiksgatami/showroadinfo index 658fca01c..fda6fbb6b 100755 --- a/bin/fiksgatami/showroadinfo +++ b/bin/fiksgatami/showroadinfo @@ -3,11 +3,12 @@ use strict; use warnings; -use FixMyStreet::App; +use FixMyStreet::Cobrand; +use FixMyStreet::DB; use FixMyStreet::Geocode::OSM; use Data::Dumper; -FixMyStreet::App->model('DB::Problem')->send_reports(); +FixMyStreet::DB->resultset('Problem')->send_reports(); my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker('fiksgatami')->new(); diff --git a/bin/fiksgatami/showroadstats b/bin/fiksgatami/showroadstats index 83c3c4310..9bc8de70b 100755 --- a/bin/fiksgatami/showroadstats +++ b/bin/fiksgatami/showroadstats @@ -3,10 +3,11 @@ use strict; use warnings; -use FixMyStreet::App; +use FixMyStreet::Cobrand; +use FixMyStreet::DB; use FixMyStreet::Geocode::OSM; -my @reports = FixMyStreet::App->model('DB::Problem')->search({ +my @reports = FixMyStreet::DB->resultset('Problem')->search({ state => [ FixMyStreet::DB::Result::Problem->visible_states() ], }, { rows => 40, diff --git a/bin/fixmystreet.com/populate_bing_cache b/bin/fixmystreet.com/populate_bing_cache index 17c8911d0..c644b34fa 100755 --- a/bin/fixmystreet.com/populate_bing_cache +++ b/bin/fixmystreet.com/populate_bing_cache @@ -6,12 +6,12 @@ require 5.8.0; use Data::Dumper; -use FixMyStreet::App; +use FixMyStreet::DB; use FixMyStreet::Geocode::Bing; my $bing_culture = 'en-GB'; -my $reports = FixMyStreet::App->model('DB::Problem')->search( +my $reports = FixMyStreet::DB->resultset('Problem')->search( { geocode => undef, confirmed => { '!=', undef }, diff --git a/bin/fixmystreet.com/update-send-questionnaire b/bin/fixmystreet.com/update-send-questionnaire index 7a231b919..40549c6e4 100755 --- a/bin/fixmystreet.com/update-send-questionnaire +++ b/bin/fixmystreet.com/update-send-questionnaire @@ -10,7 +10,8 @@ reports in cobrands that don't send questionnaires at all. use strict; use warnings; -use FixMyStreet::App; +use FixMyStreet::Cobrand; +use FixMyStreet::DB; my @cobrands; foreach my $cobrand ( FixMyStreet::Cobrand->available_cobrand_classes() ) { @@ -19,7 +20,7 @@ foreach my $cobrand ( FixMyStreet::Cobrand->available_cobrand_classes() ) { push @cobrands, $cls->moniker if !$cls->send_questionnaires(); } -my $problems = FixMyStreet::App->model('DB::Problem')->search({ +my $problems = FixMyStreet::DB->resultset('Problem')->search({ cobrand => \@cobrands, send_questionnaire => 1, }); diff --git a/bin/open311-populate-service-list b/bin/open311-populate-service-list index 11f9005a5..211061258 100755 --- a/bin/open311-populate-service-list +++ b/bin/open311-populate-service-list @@ -10,7 +10,7 @@ BEGIN { require "$d/../setenv.pl"; } -use FixMyStreet::App; +use FixMyStreet::DB; use Open311::PopulateServiceList; use Getopt::Long::Descriptive; @@ -22,7 +22,7 @@ my ($opt, $usage) = describe_options( ); print($usage->text), exit if $opt->help; -my $bodies = FixMyStreet::App->model('DB::Body')->search( { +my $bodies = FixMyStreet::DB->resultset('Body')->search( { id => { '!=', 2237 }, # XXX Until Oxfordshire does do so send_method => 'Open311' } ); diff --git a/bin/open311-update-reports b/bin/open311-update-reports index 6a1c894d7..378f8e8bc 100755 --- a/bin/open311-update-reports +++ b/bin/open311-update-reports @@ -17,17 +17,18 @@ BEGIN { } use Open311::GetUpdates; -use FixMyStreet::App; +use FixMyStreet; +use FixMyStreet::DB; # FIXME - make this configurable and/or better -my $system_user = FixMyStreet::App->model('DB::User')->find_or_create( +my $system_user = FixMyStreet::DB->resultset('User')->find_or_create( { - email => FixMyStreet::App->config->{'CONTACT_EMAIL'}, + email => FixMyStreet->config('CONTACT_EMAIL'), name => 'System User', } ); -my $body_list = FixMyStreet::App->model('DB::Body'); +my $body_list = FixMyStreet::DB->resultset('Body'); my $update = Open311::GetUpdates->new( body_list => $body_list, diff --git a/bin/problem-creation-graph b/bin/problem-creation-graph index 3e46777f4..a8554058a 100755 --- a/bin/problem-creation-graph +++ b/bin/problem-creation-graph @@ -20,7 +20,7 @@ BEGIN { use File::Temp qw(tempfile); -use FixMyStreet::App; +use FixMyStreet::DB; my %config = ( gplot_output => "set terminal png font 'Vera.ttf' 9 size 1200,400", @@ -43,7 +43,7 @@ sub grab_data { my ($fh, $filename) = tempfile("fms-creation-rate-graph-data-XXXXXXXXXX", UNLINK => 1); $sources{$type} = $filename; - my @entries = FixMyStreet::App->model('DB::Problem')->search( + my @entries = FixMyStreet::DB->resultset('Problem')->search( $selection, { columns => [ { 'date' => { date => 'created' } }, diff --git a/bin/problems-filed-graph b/bin/problems-filed-graph index a930e4346..950797ebe 100755 --- a/bin/problems-filed-graph +++ b/bin/problems-filed-graph @@ -20,7 +20,7 @@ BEGIN { use File::Temp qw(tempfile); -use FixMyStreet::App; +use FixMyStreet::DB; my %config = ( gplot_output => "set terminal png font 'Vera.ttf' 9 size 1200,600", @@ -29,7 +29,7 @@ my %config = ( my ($fh, $source) = tempfile("fms-report-rate-graph-data-nonwmc-XXXXXXXXXX", UNLINK => 1); -my @entries = FixMyStreet::App->model('DB::Problem')->search({ +my @entries = FixMyStreet::DB->resultset('Problem')->search({ state => { -not_in => [ 'unconfirmed', 'hidden', 'partial' ] }, }, { columns => [ diff --git a/bin/send-alerts b/bin/send-alerts index 94f7d5509..b0040268a 100755 --- a/bin/send-alerts +++ b/bin/send-alerts @@ -21,10 +21,10 @@ use CGI; # XXX use CronFns; use mySociety::Config; -use FixMyStreet::App; +use FixMyStreet::DB; my $site = CronFns::site(mySociety::Config::get('BASE_URL')); CronFns::language($site); -FixMyStreet::App->model('DB::AlertType')->email_alerts(); +FixMyStreet::DB->resultset('AlertType')->email_alerts(); diff --git a/bin/send-comments b/bin/send-comments index fbbd57891..c3f21fb2c 100755 --- a/bin/send-comments +++ b/bin/send-comments @@ -20,15 +20,12 @@ BEGIN { require "$d/../setenv.pl"; } -use Digest::MD5; -use Encode; use CronFns; -use FixMyStreet::App; - -use Utils; use mySociety::Config; - +use DateTime; +use FixMyStreet::Cobrand; +use FixMyStreet::DB; use Open311; # send_method config values found in by-area config data, for selecting to appropriate method @@ -42,7 +39,7 @@ my ($verbose, $nomail) = CronFns::options(); my $base_url = mySociety::Config::get('BASE_URL'); my $site = CronFns::site($base_url); -my $bodies = FixMyStreet::App->model('DB::Body')->search( { +my $bodies = FixMyStreet::DB->resultset('Body')->search( { send_method => SEND_METHOD_OPEN311, send_comments => 1, } ); @@ -54,7 +51,7 @@ while ( my $body = $bodies->next ) { next if $body->areas->{+COUNCIL_ID_OXFORDSHIRE}; my $use_extended = 0; - my $comments = FixMyStreet::App->model('DB::Comment')->search( { + my $comments = FixMyStreet::DB->resultset('Comment')->search( { 'me.whensent' => undef, 'me.external_id' => undef, 'me.state' => 'confirmed', diff --git a/bin/send-questionnaires b/bin/send-questionnaires index 93d58ed77..141c21560 100755 --- a/bin/send-questionnaires +++ b/bin/send-questionnaires @@ -18,10 +18,8 @@ BEGIN { } use CGI; # XXX Awkward kludge -use Encode; use CronFns; - -use FixMyStreet::App; +use FixMyStreet::DB; use mySociety::Config; my %params; @@ -29,5 +27,5 @@ my %params; $params{site} = CronFns::site(mySociety::Config::get('BASE_URL')); CronFns::language($params{site}); -FixMyStreet::App->model('DB::Questionnaire')->send_questionnaires( \%params ); +FixMyStreet::DB->resultset('Questionnaire')->send_questionnaires( \%params ); diff --git a/bin/send-reports b/bin/send-reports index 3c6f26cdb..5765edbfa 100755 --- a/bin/send-reports +++ b/bin/send-reports @@ -21,9 +21,9 @@ use CGI; # XXX use CronFns; use mySociety::Config; -use FixMyStreet::App; +use FixMyStreet::DB; my $site = CronFns::site(mySociety::Config::get('BASE_URL')); CronFns::language($site); -FixMyStreet::App->model('DB::Problem')->send_reports(); +FixMyStreet::DB->resultset('Problem')->send_reports(); diff --git a/bin/update-all-reports b/bin/update-all-reports index 0627cedc2..25405e8ad 100755 --- a/bin/update-all-reports +++ b/bin/update-all-reports @@ -17,7 +17,9 @@ BEGIN { require "$d/../setenv.pl"; } -use FixMyStreet::App; +use FixMyStreet; +use FixMyStreet::DB; + use File::Path (); use File::Slurp; use JSON; @@ -32,7 +34,7 @@ if ( FixMyStreet->config('BASE_URL') =~ /zurich|zueri/ ) { $age_column = 'created'; } -my $problems = FixMyStreet::App->model("DB::Problem")->search( +my $problems = FixMyStreet::DB->resultset('Problem')->search( { state => [ FixMyStreet::DB::Result::Problem->visible_states() ], }, diff --git a/bin/zerotb/import_clinic_list.pl b/bin/zerotb/import_clinic_list.pl index 359a63925..f7bdbc092 100755 --- a/bin/zerotb/import_clinic_list.pl +++ b/bin/zerotb/import_clinic_list.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl use strict; -use FixMyStreet::App; +use FixMyStreet::DB; use Text::CSV; use Getopt::Long::Descriptive; @@ -23,7 +23,7 @@ my $csv = Text::CSV->new ( { binary => 1 } ) # should set binary attribute. or die "Cannot use CSV: ".Text::CSV->error_diag (); open my $fh, "<:encoding(utf8)", $opt->file or die "Failed to open " . $opt->file . ": $!"; -my $clinic_user = FixMyStreet::App->model('DB::User')->find_or_create({ +my $clinic_user = FixMyStreet::DB->resultset('User')->find_or_create({ email => $opt->email }); if ( not $clinic_user->in_storage ) { @@ -34,7 +34,7 @@ if ( not $clinic_user->in_storage ) { my $title_row = $csv->getline( $fh ); while ( my $row = $csv->getline( $fh ) ) { - my $clinics = FixMyStreet::App->model('DB::Problem')->search({ + my $clinics = FixMyStreet::DB->resultset('Problem')->search({ title => $row->[TITLE] }); @@ -42,7 +42,7 @@ while ( my $row = $csv->getline( $fh ) ) { my $p; my $count = $clinics->count; if ( $count == 0 ) { - $p = FixMyStreet::App->model('DB::Problem')->create({ + $p = FixMyStreet::DB->resultset('Problem')->create({ title => $row->[TITLE], latitude => $lat, longitude => $long, @@ -76,14 +76,14 @@ while ( my $row = $csv->getline( $fh ) ) { $p->discard_changes; # disabling existing alerts in case email addresses have changed - my $existing = FixMyStreet::App->model('DB::Alert')->search({ + my $existing = FixMyStreet::DB->resultset('Alert')->search({ alert_type => 'new_updates', parameter => $p->id }); $existing->update( { confirmed => 0 } ); if ( $row->[EMAIL] ) { - my $u = FixMyStreet::App->model('DB::User')->find_or_new({ + my $u = FixMyStreet::DB->resultset('User')->find_or_new({ email => $row->[EMAIL] }); $u->insert unless $u->in_storage; @@ -95,7 +95,7 @@ while ( my $row = $csv->getline( $fh ) ) { sub create_update_alert { my ( $user, $p, $verbose ) = @_; - my $a = FixMyStreet::App->model('DB::Alert')->find_or_new({ + my $a = FixMyStreet::DB->resultset('Alert')->find_or_new({ alert_type => 'new_updates', user => $user, parameter => $p->id, diff --git a/bin/zurich/convert_internal_notes_to_comments b/bin/zurich/convert_internal_notes_to_comments index ddf74851f..76db0a45b 100755 --- a/bin/zurich/convert_internal_notes_to_comments +++ b/bin/zurich/convert_internal_notes_to_comments @@ -17,15 +17,13 @@ the superuser, or one created just for this purpose? use strict; use warnings; -use FixMyStreet::App; +use FixMyStreet::DB; # Because it is not possible to determine the user that last edited the # internal_notes we need require a user to assign all the comments to. my $comment_user_id = $ARGV[0] || die "Usage: $0 id_of_user_for_comments"; -my $comment_user = FixMyStreet::App # - ->model('DB::User') # - ->find($comment_user_id) +my $comment_user = FixMyStreet::DB->resultset('User')->find($comment_user_id) || die "Could not find user with id '$comment_user_id'"; # We use now as the time for the internal note. This is not the time it was @@ -39,7 +37,7 @@ my $comment_state = 'hidden'; # Load all the comments, more reliable than trying to search on the contents of # the extra field. -my $problems = FixMyStreet::App->model('DB::Problem')->search(); +my $problems = FixMyStreet::DB->resultset('Problem')->search(); while ( my $problem = $problems->next() ) { diff --git a/bin/zurich/overdue-alert b/bin/zurich/overdue-alert index 03845dddb..0473208c5 100755 --- a/bin/zurich/overdue-alert +++ b/bin/zurich/overdue-alert @@ -19,7 +19,8 @@ BEGIN { use DateTime; use CronFns; -use FixMyStreet::App; +use FixMyStreet::Cobrand; +use FixMyStreet::DB; use FixMyStreet::Email; my ($verbose, $nomail) = CronFns::options(); @@ -29,7 +30,7 @@ my $now = DateTime->now(); exit if FixMyStreet::Cobrand::Zurich::is_public_holiday($now) or FixMyStreet::Cobrand::Zurich::is_weekend($now); my $cobrand = FixMyStreet::Cobrand->get_class_for_moniker('zurich')->new(); -my %bodies = map { $_->id => $_ } FixMyStreet::App->model("DB::Body")->all; +my %bodies = map { $_->id => $_ } FixMyStreet::DB->resultset("Body")->all; loop_through( 'alert-moderation-overdue.txt', 0, 1, [ 'unconfirmed' ] ); loop_through( 'alert-overdue.txt', 1, 6, 'in progress' ); @@ -37,10 +38,10 @@ loop_through( 'alert-overdue.txt', 0, 6, ['confirmed', 'planned'] ); sub loop_through { my ( $template, $include_parent, $days, $states ) = @_; - my $dtf = FixMyStreet::App->model("DB")->storage->datetime_parser; + my $dtf = FixMyStreet::DB->storage->datetime_parser; my $date_threshold = $dtf->format_datetime(FixMyStreet::Cobrand::Zurich::sub_days( $now, $days )); - my $reports = FixMyStreet::App->model("DB::Problem")->search( { + my $reports = FixMyStreet::DB->resultset("Problem")->search( { state => $states, created => { '<', $date_threshold }, bodies_str => { '!=', undef }, @@ -78,7 +79,7 @@ sub send_alert { } FixMyStreet::Email::send_cron( - $schema, + FixMyStreet::DB->storage->schema, { _template_ => $template, _parameters_ => $h, diff --git a/db/rerun_dbic_loader.pl b/db/rerun_dbic_loader.pl index d7dfd1c10..958b28241 100755 --- a/db/rerun_dbic_loader.pl +++ b/db/rerun_dbic_loader.pl @@ -32,6 +32,6 @@ make_schema_at( components => [ 'FilterColumn', 'InflateColumn::DateTime', 'EncodedColumn' ], }, - FixMyStreet->dbic_connect_info(), + [ FixMyStreet->dbic_connect_info ], ); diff --git a/perllib/FixMyStreet.pm b/perllib/FixMyStreet.pm index 76befb96a..4ea999e8c 100644 --- a/perllib/FixMyStreet.pm +++ b/perllib/FixMyStreet.pm @@ -136,7 +136,7 @@ sub override_config($&) { =head2 dbic_connect_info - $connect_info = FixMyStreet->dbic_connect_info(); + $connect_info = FixMyStreet->dbic_connect_info; Returns the array that DBIx::Class::Schema needs to connect to the database. Most of the values are read from the config file and others are hordcoded here. @@ -172,7 +172,7 @@ sub dbic_connect_info { }; my $dbic_args = {}; - return [ $dsn, $user, $password, $dbi_args, $dbic_args ]; + return ( $dsn, $user, $password, $dbi_args, $dbic_args ); } =head2 configure_mysociety_dbhandle diff --git a/perllib/FixMyStreet/App/Controller/JSON.pm b/perllib/FixMyStreet/App/Controller/JSON.pm index 959ead245..be738bb8b 100644 --- a/perllib/FixMyStreet/App/Controller/JSON.pm +++ b/perllib/FixMyStreet/App/Controller/JSON.pm @@ -8,7 +8,6 @@ use JSON; use DateTime; use DateTime::Format::ISO8601; use List::MoreUtils 'uniq'; -use FixMyStreet::App; =head1 NAME @@ -81,7 +80,7 @@ sub problems : Local { $date_col = 'lastupdate'; } - my $dt_parser = FixMyStreet::App->model('DB')->schema->storage->datetime_parser; + my $dt_parser = $c->model('DB')->schema->storage->datetime_parser; my $one_day = DateTime::Duration->new( days => 1 ); my $query = { diff --git a/perllib/FixMyStreet/App/Model/DB.pm b/perllib/FixMyStreet/App/Model/DB.pm index f9e43172f..ac1f98dc9 100644 --- a/perllib/FixMyStreet/App/Model/DB.pm +++ b/perllib/FixMyStreet/App/Model/DB.pm @@ -8,7 +8,7 @@ use FixMyStreet; __PACKAGE__->config( schema_class => 'FixMyStreet::DB', - connect_info => FixMyStreet->dbic_connect_info, + connect_info => sub { FixMyStreet::DB->storage->dbh }, ); =head1 NAME diff --git a/perllib/FixMyStreet/App/Model/PhotoSet.pm b/perllib/FixMyStreet/App/Model/PhotoSet.pm index b18460821..f1334ff38 100644 --- a/perllib/FixMyStreet/App/Model/PhotoSet.pm +++ b/perllib/FixMyStreet/App/Model/PhotoSet.pm @@ -56,7 +56,7 @@ has upload_dir => ( lazy => 1, default => sub { my $self = shift; - my $cache_dir = path( $self->c->config->{UPLOAD_DIR} ); + my $cache_dir = path( FixMyStreet->config('UPLOAD_DIR') ); $cache_dir->mkpath; unless ( -d $cache_dir && -w $cache_dir ) { warn "Can't find/write to photo cache directory '$cache_dir'"; diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm index 9541f2601..48c997047 100644 --- a/perllib/FixMyStreet/Cobrand/Default.pm +++ b/perllib/FixMyStreet/Cobrand/Default.pm @@ -682,7 +682,7 @@ sub get_body_sender { if ( $body->can_be_devolved ) { # look up via category - my $config = FixMyStreet::App->model("DB::Contact")->search( { body_id => $body->id, category => $category } )->first; + my $config = $body->result_source->schema->resultset("Contact")->search( { body_id => $body->id, category => $category } )->first; if ( $config->send_method ) { return { method => $config->send_method, config => $config }; } else { diff --git a/perllib/FixMyStreet/Cobrand/UKCouncils.pm b/perllib/FixMyStreet/Cobrand/UKCouncils.pm index 074da0915..66d8bd472 100644 --- a/perllib/FixMyStreet/Cobrand/UKCouncils.pm +++ b/perllib/FixMyStreet/Cobrand/UKCouncils.pm @@ -113,7 +113,7 @@ sub owns_problem { if (ref $report eq 'HASH') { return unless $report->{bodies_str}; @bodies = split /,/, $report->{bodies_str}; - @bodies = FixMyStreet::App->model('DB::Body')->search({ id => \@bodies })->all; + @bodies = FixMyStreet::DB->resultset('Body')->search({ id => \@bodies })->all; } else { # Object @bodies = values %{$report->bodies}; } diff --git a/perllib/FixMyStreet/Cobrand/Zurich.pm b/perllib/FixMyStreet/Cobrand/Zurich.pm index 6da3e566c..8c08b82b1 100644 --- a/perllib/FixMyStreet/Cobrand/Zurich.pm +++ b/perllib/FixMyStreet/Cobrand/Zurich.pm @@ -850,7 +850,7 @@ sub admin_report_edit { # Add new update from status_update if (my $update = $c->get_param('status_update')) { - FixMyStreet::App->model('DB::Comment')->create( { + $c->model('DB::Comment')->create( { text => $update, user => $c->user->obj, state => 'unconfirmed', @@ -1010,10 +1010,10 @@ sub _admin_send_email { } sub munge_sendreport_params { - my ($self, $c, $row, $h, $params) = @_; + my ($self, $row, $h, $params) = @_; if ($row->state =~ /^(closed|investigating)$/ && $row->get_extra_metadata('publish_photo')) { # we attach images to reports sent to external bodies - my $photoset = $row->get_photoset($c); + my $photoset = $row->get_photoset(); my @images = $photoset->all_images or return; my $index = 0; diff --git a/perllib/FixMyStreet/DB.pm b/perllib/FixMyStreet/DB.pm index a1767abe9..d920c809f 100644 --- a/perllib/FixMyStreet/DB.pm +++ b/perllib/FixMyStreet/DB.pm @@ -15,5 +15,8 @@ __PACKAGE__->load_namespaces; # Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CjFpUvon7KggFM7OF7VK/w -# You can replace this text with custom code or comments, and it will be preserved on regeneration +use FixMyStreet; + +__PACKAGE__->connection(FixMyStreet->dbic_connect_info); + 1; diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm index 0cab853de..e340acf1e 100644 --- a/perllib/FixMyStreet/DB/Result/Problem.pm +++ b/perllib/FixMyStreet/DB/Result/Problem.pm @@ -462,7 +462,7 @@ sub bodies($) { my $self = shift; return {} unless $self->bodies_str; my $bodies = $self->bodies_str_ids; - my @bodies = FixMyStreet::App->model('DB::Body')->search({ id => $bodies })->all; + my @bodies = $self->result_source->schema->resultset('Body')->search({ id => $bodies })->all; return { map { $_->id => $_ } @bodies }; } @@ -648,7 +648,7 @@ order of title. sub response_templates { my $problem = shift; - return FixMyStreet::App->model('DB::ResponseTemplate')->search( + return $problem->result_source->schema->resultset('ResponseTemplate')->search( { body_id => $problem->bodies_str_ids }, @@ -754,20 +754,17 @@ sub update_from_open311_service_request { $status_notes = $request->{status_notes}; } - my $update = FixMyStreet::App->model('DB::Comment')->new( - { - problem_id => $self->id, - state => 'confirmed', - created => $updated || \'current_timestamp', - confirmed => \'current_timestamp', - text => $status_notes, - mark_open => 0, - mark_fixed => 0, - user => $system_user, - anonymous => 0, - name => $body->name, - } - ); + my $update = $self->new_related(comments => { + state => 'confirmed', + created => $updated || \'current_timestamp', + confirmed => \'current_timestamp', + text => $status_notes, + mark_open => 0, + mark_fixed => 0, + user => $system_user, + anonymous => 0, + name => $body->name, + }); my $w3c = DateTime::Format::W3CDTF->new; my $req_time = $w3c->parse_datetime( $request->{updated_datetime} ); diff --git a/perllib/FixMyStreet/DB/ResultSet/Alert.pm b/perllib/FixMyStreet/DB/ResultSet/Alert.pm index bb1c61141..1866e9b06 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Alert.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Alert.pm @@ -8,7 +8,7 @@ sub timeline_created { my ( $rs, $restriction ) = @_; my $prefetch = - FixMyStreet::App->model('DB')->schema->storage->sql_maker->quote_char ? + $rs->result_source->storage->sql_maker->quote_char ? [ qw/alert_type user/ ] : [ qw/alert_type/ ]; diff --git a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm index 114f79c6e..d4cf9ba8b 100644 --- a/perllib/FixMyStreet/DB/ResultSet/AlertType.pm +++ b/perllib/FixMyStreet/DB/ResultSet/AlertType.pm @@ -11,6 +11,7 @@ use mySociety::MaPit; use IO::String; use RABX; +use FixMyStreet::Cobrand; use FixMyStreet::Email; # Child must have confirmed, id, email, state(!) columns @@ -73,7 +74,7 @@ sub email_alerts ($) { # this is for the new_updates alerts next if $row->{non_public} and $row->{user_id} != $row->{alert_user_id}; - FixMyStreet::App->model('DB::AlertSent')->create( { + $schema->resultset('AlertSent')->create( { alert_id => $row->{alert_id}, parameter => $row->{item_id}, } ); @@ -97,11 +98,11 @@ sub email_alerts ($) { if ( $cobrand->moniker ne 'zurich' && $row->{alert_user_id} == $row->{user_id} ) { # This is an alert to the same user who made the report - make this a login link # Don't bother with Zurich which has no accounts - my $user = FixMyStreet::App->model('DB::User')->find( { + my $user = $schema->resultset('User')->find( { id => $row->{alert_user_id} } ); $data{alert_email} = $user->email; - my $token_obj = FixMyStreet::App->model('DB::Token')->create( { + my $token_obj = $schema->resultset('Token')->create( { scope => 'alert_to_reporter', data => { id => $row->{id}, @@ -156,7 +157,7 @@ sub email_alerts ($) { # Nearby done separately as the table contains the parameters my $template = $rs->find( { ref => 'local_problems' } )->template; - my $query = FixMyStreet::App->model('DB::Alert')->search( { + my $query = $schema->resultset('Alert')->search( { alert_type => 'local_problems', whendisabled => undef, confirmed => 1 @@ -198,7 +199,7 @@ sub email_alerts ($) { $q = dbh()->prepare($q); $q->execute($latitude, $longitude, $d, $alert->whensubscribed, $alert->id, $alert->user->email); while (my $row = $q->fetchrow_hashref) { - FixMyStreet::App->model('DB::AlertSent')->create( { + $schema->resultset('AlertSent')->create( { alert_id => $alert->id, parameter => $row->{id}, } ); @@ -222,18 +223,18 @@ sub _send_aggregated_alert_email(%) { $cobrand->set_lang_and_domain( $data{lang}, 1, FixMyStreet->path_to('locale')->stringify ); if (!$data{alert_email}) { - my $user = FixMyStreet::App->model('DB::User')->find( { + my $user = $data{schema}->resultset('User')->find( { id => $data{alert_user_id} } ); $data{alert_email} = $user->email; } my ($domain) = $data{alert_email} =~ m{ @ (.*) \z }x; - return if FixMyStreet::App->model('DB::Abuse')->search( { + return if $data{schema}->resultset('Abuse')->search( { email => [ $data{alert_email}, $domain ] } )->first; - my $token = FixMyStreet::App->model("DB::Token")->new_result( { + my $token = $data{schema}->resultset("Token")->new_result( { scope => 'alert', data => { id => $data{alert_id}, diff --git a/perllib/FixMyStreet/DB/ResultSet/Comment.pm b/perllib/FixMyStreet/DB/ResultSet/Comment.pm index 1b6afb819..3059baab1 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Comment.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Comment.pm @@ -14,7 +14,7 @@ sub timeline { my ( $rs, $body_restriction ) = @_; my $prefetch = - FixMyStreet::App->model('DB')->schema->storage->sql_maker->quote_char ? + $rs->result_source->storage->sql_maker->quote_char ? [ qw/user/ ] : []; diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm index 0c2811b7b..8e6cc7333 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm @@ -10,7 +10,7 @@ use Utils; use mySociety::Config; use mySociety::MaPit; -use FixMyStreet::App; +use FixMyStreet::Cobrand; use FixMyStreet::Email; use FixMyStreet::SendReport; @@ -174,7 +174,7 @@ sub timeline { my ( $rs ) = @_; my $prefetch = - FixMyStreet::App->model('DB')->schema->storage->sql_maker->quote_char ? + $rs->result_source->storage->sql_maker->quote_char ? [ qw/user/ ] : []; @@ -336,14 +336,14 @@ sub send_reports { $cobrand->process_additional_metadata_for_email($row, \%h); } - my $bodies = FixMyStreet::App->model("DB::Body")->search( + my $bodies = $rs->result_source->schema->resultset('Body')->search( { id => $row->bodies_str_ids }, { order_by => 'name' }, ); my $missing; if ($row->bodies_missing) { - my @missing = FixMyStreet::App->model("DB::Body")->search( + my @missing = $rs->result_source->schema->resultset("Body")->search( { id => [ split /,/, $row->bodies_missing ] }, { order_by => 'name' } )->get_column('name')->all; diff --git a/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm b/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm index f9d32f2c1..aca330960 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Questionnaire.pm @@ -7,6 +7,7 @@ use Encode; use Utils; use FixMyStreet::Email; +use FixMyStreet::Cobrand; sub send_questionnaires { my ( $rs, $params ) = @_; @@ -40,7 +41,7 @@ sub send_questionnaires_period { ]; } - my $unsent = FixMyStreet::App->model('DB::Problem')->search( $q_params, { + my $unsent = $rs->result_source->schema->resultset('Problem')->search( $q_params, { order_by => { -desc => 'confirmed' } } ); @@ -70,7 +71,7 @@ sub send_questionnaires_period { my %h = map { $_ => $row->$_ } qw/name title detail category/; $h{created} = Utils::prettify_duration( time() - $row->confirmed->epoch, 'week' ); - my $questionnaire = FixMyStreet::App->model('DB::Questionnaire')->create( { + my $questionnaire = $rs->create( { problem_id => $row->id, whensent => \'current_timestamp', } ); @@ -80,7 +81,7 @@ sub send_questionnaires_period { $row->send_questionnaire( 0 ) if $params->{site} ne 'emptyhomes' || $period eq '26 weeks'; - my $token = FixMyStreet::App->model("DB::Token")->new_result( { + my $token = $rs->result_source->schema->resultset("Token")->new_result( { scope => 'questionnaire', data => $questionnaire->id, } ); diff --git a/perllib/FixMyStreet/SendReport/Email.pm b/perllib/FixMyStreet/SendReport/Email.pm index 95c460006..bc526ded2 100644 --- a/perllib/FixMyStreet/SendReport/Email.pm +++ b/perllib/FixMyStreet/SendReport/Email.pm @@ -11,7 +11,7 @@ sub build_recipient_list { my $all_confirmed = 1; foreach my $body ( @{ $self->bodies } ) { - my $contact = FixMyStreet::App->model("DB::Contact")->find( { + my $contact = $row->result_source->schema->resultset("Contact")->find( { deleted => 0, body_id => $body->id, category => $row->category @@ -94,9 +94,7 @@ sub send { From => $self->send_from( $row ), }; - my $app = FixMyStreet::App->new( cobrand => $cobrand ); - - $cobrand->munge_sendreport_params($app, $row, $h, $params) if $cobrand->can('munge_sendreport_params'); + $cobrand->munge_sendreport_params($row, $h, $params) if $cobrand->can('munge_sendreport_params'); $params->{Bcc} = $self->bcc if @{$self->bcc}; diff --git a/perllib/FixMyStreet/SendReport/EmptyHomes.pm b/perllib/FixMyStreet/SendReport/EmptyHomes.pm index ce69aaac3..bf7164e21 100644 --- a/perllib/FixMyStreet/SendReport/EmptyHomes.pm +++ b/perllib/FixMyStreet/SendReport/EmptyHomes.pm @@ -12,7 +12,7 @@ sub build_recipient_list { my $all_confirmed = 1; foreach my $body ( @{ $self->bodies } ) { - my $contact = FixMyStreet::App->model("DB::Contact")->find( { + my $contact = $row->result_source->schema->resultset("Contact")->find( { deleted => 0, body_id => $body->id, category => 'Empty property', diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm index fa216466e..14dd65fa6 100644 --- a/perllib/FixMyStreet/SendReport/Open311.pm +++ b/perllib/FixMyStreet/SendReport/Open311.pm @@ -5,7 +5,6 @@ use namespace::autoclean; BEGIN { extends 'FixMyStreet::SendReport'; } -use FixMyStreet::App; use mySociety::Config; use DateTime::Format::W3CDTF; use Open311; @@ -85,7 +84,7 @@ sub send { } # FIXME: we've already looked this up before - my $contact = FixMyStreet::App->model("DB::Contact")->find( { + my $contact = $row->result_source->schema->resultset("Contact")->find( { deleted => 0, body_id => $body->id, category => $row->category diff --git a/perllib/FixMyStreet/SendReport/Zurich.pm b/perllib/FixMyStreet/SendReport/Zurich.pm index 2838440cb..7af4cf4f5 100644 --- a/perllib/FixMyStreet/SendReport/Zurich.pm +++ b/perllib/FixMyStreet/SendReport/Zurich.pm @@ -14,7 +14,7 @@ sub build_recipient_list { # Wunsch set, but external_message hasn't yet been filled in. TODO should # we instead be holding off sending?) if ( $row->external_body ) { - $body = FixMyStreet::App->model("DB::Body")->find( { id => $row->external_body } ); + $body = $row->result_source->schema->resultset("Body")->find( { id => $row->external_body } ); $h->{bodies_name} = $body->name; $h->{external_message} = $row->get_extra_metadata('external_message') || ''; } @@ -29,7 +29,7 @@ sub build_recipient_list { my $parent = $body->parent; if ($parent && !$parent->parent) { # Division, might have an individual contact email address - my $contact = FixMyStreet::App->model("DB::Contact")->find( { + my $contact = $row->result_source->schema->resultset("Contact")->find( { body_id => $body->id, category => $row->category } ); @@ -72,7 +72,7 @@ sub send_from { if ( $row->external_body ) { my $body = @{ $self->bodies }[0]; my $body_email = $body->endpoint; - my $contact = FixMyStreet::App->model("DB::Contact")->find( { + my $contact = $body->result_source->schema->resultset("Contact")->find( { body_id => $body->id, category => $row->category } ); diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm index cc5f9dd71..d3adce08b 100644 --- a/perllib/FixMyStreet/TestMech.pm +++ b/perllib/FixMyStreet/TestMech.pm @@ -66,7 +66,7 @@ sub create_user_ok { my ($email) = @_; my $user = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => $email } ); ok $user, "found/created user for $email"; @@ -147,7 +147,7 @@ sub delete_user { my $user = ref $email_or_user ? $email_or_user - : FixMyStreet::App->model('DB::User') + : FixMyStreet::DB->resultset('User') ->find( { email => $email_or_user } ); # If no user found we can't delete them @@ -567,7 +567,7 @@ sub delete_problems_for_body { my $mech = shift; my $body = shift; - my $reports = FixMyStreet::App->model('DB::Problem')->search( { bodies_str => $body } ); + my $reports = FixMyStreet::DB->resultset('Problem')->search( { bodies_str => $body } ); if ( $reports ) { for my $r ( $reports->all ) { $r->comments->delete; @@ -587,7 +587,7 @@ sub create_contact_ok { note => 'Created for test', @_ ); - my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create( \%contact_params ); + my $contact = FixMyStreet::DB->resultset('Contact')->find_or_create( \%contact_params ); ok $contact, 'found/created contact ' . $contact->category;; return $contact; } @@ -596,7 +596,7 @@ sub create_body_ok { my $self = shift; my ( $area_id, $name, %extra ) = @_; - my $body = FixMyStreet::App->model('DB::Body'); + my $body = FixMyStreet::DB->resultset('Body'); my $params = { name => $name }; if ($extra{id}) { $body = $body->update_or_create({ %$params, id => $extra{id} }, { key => 'primary' }); @@ -606,7 +606,7 @@ sub create_body_ok { ok $body, "found/created body $name"; $body->body_areas->delete; - FixMyStreet::App->model('DB::BodyArea')->find_or_create({ + FixMyStreet::DB->resultset('BodyArea')->find_or_create({ area_id => $area_id, body_id => $body->id, }); @@ -621,7 +621,7 @@ sub create_problems_for_body { my $dt = $params->{dt} || DateTime->now(); my $user = $params->{user} || - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); delete $params->{user}; @@ -656,7 +656,7 @@ sub create_problems_for_body { my %report_params = ( %$default_params, %$params ); my $problem = - FixMyStreet::App->model('DB::Problem')->create( \%report_params ); + FixMyStreet::DB->resultset('Problem')->create( \%report_params ); push @problems, $problem; $count--; diff --git a/perllib/Open311.pm b/perllib/Open311.pm index 58ae96bc2..db6fcc4a8 100644 --- a/perllib/Open311.pm +++ b/perllib/Open311.pm @@ -8,6 +8,8 @@ use LWP::Simple; use LWP::UserAgent; use DateTime::Format::W3CDTF; use HTTP::Request::Common qw(POST); +use FixMyStreet::Cobrand; +use FixMyStreet::DB; has jurisdiction => ( is => 'ro', isa => 'Str' );; has api_key => ( is => 'ro', isa => 'Str' ); diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm index 1e5f4dc6b..b7da43604 100644 --- a/perllib/Open311/GetServiceRequestUpdates.pm +++ b/perllib/Open311/GetServiceRequestUpdates.pm @@ -2,7 +2,7 @@ package Open311::GetServiceRequestUpdates; use Moose; use Open311; -use FixMyStreet::App; +use FixMyStreet::DB; use DateTime::Format::W3CDTF; has system_user => ( is => 'rw' ); @@ -10,6 +10,7 @@ has start_date => ( is => 'ro', default => undef ); has end_date => ( is => 'ro', default => undef ); has suppress_alerts => ( is => 'rw', default => 0 ); has verbose => ( is => 'ro', default => 0 ); +has schema => ( is =>'ro', lazy => 1, default => sub { FixMyStreet::DB->connect } ); Readonly::Scalar my $AREA_ID_BROMLEY => 2482; Readonly::Scalar my $AREA_ID_OXFORDSHIRE => 2237; @@ -17,7 +18,7 @@ Readonly::Scalar my $AREA_ID_OXFORDSHIRE => 2237; sub fetch { my $self = shift; - my $bodies = FixMyStreet::App->model('DB::Body')->search( + my $bodies = $self->schema->resultset('Body')->search( { send_method => 'Open311', send_comments => 1, @@ -91,7 +92,7 @@ sub update_comments { my $criteria = { external_id => $request_id, }; - $problem = FixMyStreet::App->model('DB::Problem')->to_body($body)->search( $criteria ); + $problem = $self->schema->resultset('Problem')->to_body($body)->search( $criteria ); if (my $p = $problem->first) { my $c = $p->comments->search( { external_id => $request->{update_id} } ); @@ -99,7 +100,7 @@ sub update_comments { if ( !$c->first ) { my $comment_time = DateTime::Format::W3CDTF->parse_datetime( $request->{updated_datetime} ); - my $comment = FixMyStreet::App->model('DB::Comment')->new( + my $comment = $self->schema->resultset('Comment')->new( { problem => $p, user => $self->system_user, @@ -137,7 +138,7 @@ sub update_comments { $comment->insert(); if ( $self->suppress_alerts ) { - my @alerts = FixMyStreet::App->model('DB::Alert')->search( { + my @alerts = $self->schema->resultset('Alert')->search( { alert_type => 'new_updates', parameter => $p->id, confirmed => 1, @@ -145,7 +146,7 @@ sub update_comments { } ); for my $alert (@alerts) { - my $alerts_sent = FixMyStreet::App->model('DB::AlertSent')->find_or_create( { + my $alerts_sent = $self->schema->resultset('AlertSent')->find_or_create( { alert_id => $alert->id, parameter => $comment->id, } ); diff --git a/perllib/Open311/GetUpdates.pm b/perllib/Open311/GetUpdates.pm index bc55086f0..afbdd13b5 100644 --- a/perllib/Open311/GetUpdates.pm +++ b/perllib/Open311/GetUpdates.pm @@ -2,7 +2,7 @@ package Open311::GetUpdates; use Moose; use Open311; -use FixMyStreet::App; +use FixMyStreet::Cobrand; has body_list => ( is => 'ro' ); has system_user => ( is => 'ro' ); @@ -17,7 +17,7 @@ sub get_updates { api_key => $body->api_key ); - my $reports = FixMyStreet::App->model('DB::Problem')->to_body($body)->search( + my $reports = $body->result_source->schema->resultset('Problem')->to_body($body)->search( { state => { 'IN', [qw/confirmed fixed/] }, -and => [ @@ -62,8 +62,7 @@ sub update_reports { my $request_id = $request->{service_request_id}; - my $problem = - FixMyStreet::App->model('DB::Problem') + my $problem = $body->result_source->schema->resultset('Problem') ->search( { external_id => $request_id, } ); if (my $p = $problem->first) { diff --git a/perllib/Open311/PopulateServiceList.pm b/perllib/Open311/PopulateServiceList.pm index 5f45382e2..fbb0ebc56 100644 --- a/perllib/Open311/PopulateServiceList.pm +++ b/perllib/Open311/PopulateServiceList.pm @@ -1,21 +1,17 @@ package Open311::PopulateServiceList; use Moose; -use LWP::Simple; -use XML::Simple; -use FixMyStreet::App; use Open311; has bodies => ( is => 'ro' ); has found_contacts => ( is => 'rw', default => sub { [] } ); has verbose => ( is => 'ro', default => 0 ); +has schema => ( is => 'ro', lazy => 1, default => sub { FixMyStreet::DB->connect } ); has _current_body => ( is => 'rw' ); has _current_open311 => ( is => 'rw' ); has _current_service => ( is => 'rw' ); -my $bodies = FixMyStreet::App->model('DB::Body'); - sub process_bodies { my $self = shift; @@ -93,7 +89,7 @@ sub process_service { $self->_current_service->{service_name}; print $self->_current_service->{service_code} . ': ' . $category . "\n" if $self->verbose >= 2; - my $contacts = FixMyStreet::App->model( 'DB::Contact')->search( + my $contacts = $self->schema->resultset('Contact')->search( { body_id => $self->_current_body->id, -OR => [ @@ -173,7 +169,7 @@ sub _create_contact { my $contact; eval { - $contact = FixMyStreet::App->model( 'DB::Contact')->create( + $contact = $self->schema->resultset('Contact')->create( { email => $self->_current_service->{service_code}, body_id => $self->_current_body->id, @@ -287,7 +283,7 @@ sub _normalize_service_name { sub _delete_contacts_not_in_service_list { my $self = shift; - my $found_contacts = FixMyStreet::App->model( 'DB::Contact')->search( + my $found_contacts = $self->schema->resultset('Contact')->search( { email => { -not_in => $self->found_contacts }, body_id => $self->_current_body->id, diff --git a/t/app/model/alert_type.t b/t/app/model/alert_type.t index 2620dd68c..f67b5d1f7 100644 --- a/t/app/model/alert_type.t +++ b/t/app/model/alert_type.t @@ -9,21 +9,21 @@ my $mech = FixMyStreet::TestMech->new(); # this is the easiest way to make sure we're not going # to get any emails sent by data kicking about in the database -FixMyStreet::App->model('DB::AlertType')->email_alerts(); +FixMyStreet::DB->resultset('AlertType')->email_alerts(); $mech->clear_emails_ok; my $user = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); ok $user, "created test user"; my $user2 = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'commenter@example.com', name => 'Commenter' } ); ok $user2, "created comment user"; my $user3 = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'bystander@example.com', name => 'Bystander' } ); ok $user3, "created bystander"; @@ -36,7 +36,7 @@ my $dt = DateTime->new( second => 23 ); -my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( +my $report = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'SW1A 1AA', bodies_str => '2504', @@ -62,7 +62,7 @@ my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( my $report_id = $report->id; ok $report, "created test report - $report_id"; -my $comment = FixMyStreet::App->model('DB::Comment')->find_or_create( +my $comment = FixMyStreet::DB->resultset('Comment')->find_or_create( { problem_id => $report_id, user_id => $user2->id, @@ -74,7 +74,7 @@ my $comment = FixMyStreet::App->model('DB::Comment')->find_or_create( anonymous => 'f', } ); -my $comment2 = FixMyStreet::App->model('DB::Comment')->find_or_create( +my $comment2 = FixMyStreet::DB->resultset('Comment')->find_or_create( { problem_id => $report_id, user_id => $user2->id, @@ -90,7 +90,7 @@ my $comment2 = FixMyStreet::App->model('DB::Comment')->find_or_create( $comment->confirmed( \"current_timestamp - '3 days'::interval" ); $comment->update; -my $alert = FixMyStreet::App->model('DB::Alert')->find_or_create( +my $alert = FixMyStreet::DB->resultset('Alert')->find_or_create( { user => $user, parameter => $report_id, @@ -101,7 +101,7 @@ my $alert = FixMyStreet::App->model('DB::Alert')->find_or_create( } ); -my $alert3 = FixMyStreet::App->model('DB::Alert')->find_or_create( +my $alert3 = FixMyStreet::DB->resultset('Alert')->find_or_create( { user => $user3, parameter => $report_id, @@ -129,7 +129,7 @@ for my $test ( subtest "correct summary for state of $test->{state}" => sub { $mech->clear_emails_ok; - my $sent = FixMyStreet::App->model('DB::AlertSent')->search( + my $sent = FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => [ $alert->id, $alert3->id ], parameter => $comment->id, @@ -139,7 +139,7 @@ for my $test ( $report->state( $test->{state} ); $report->update; - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); $mech->email_count_is( 2 ); my @emails = $mech->get_email; @@ -167,7 +167,7 @@ my $now = DateTime->now(); $report->confirmed( $now->ymd . ' ' . $now->hms ); $report->update(); -my $council_alert = FixMyStreet::App->model('DB::Alert')->find_or_create( +my $council_alert = FixMyStreet::DB->resultset('Alert')->find_or_create( { user => $user2, parameter => 2504, @@ -181,7 +181,7 @@ my $council_alert = FixMyStreet::App->model('DB::Alert')->find_or_create( subtest "correct text for title after URL" => sub { $mech->clear_emails_ok; - my $sent = FixMyStreet::App->model('DB::AlertSent')->search( + my $sent = FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => $council_alert->id, parameter => $report->id, @@ -190,7 +190,7 @@ subtest "correct text for title after URL" => sub { FixMyStreet::override_config { MAPIT_URL => 'http://mapit.mysociety.org/', }, sub { - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); }; my $email = $mech->get_email; @@ -304,7 +304,7 @@ foreach my $test ( subtest "correct Nearest Road text with $test->{desc}" => sub { $mech->clear_emails_ok; - my $sent = FixMyStreet::App->model('DB::AlertSent')->search( + my $sent = FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => $council_alert->id, parameter => $report->id, @@ -327,7 +327,7 @@ foreach my $test ( FixMyStreet::override_config { MAPIT_URL => 'http://mapit.mysociety.org/', }, sub { - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); }; my $email = $mech->get_email; @@ -341,7 +341,7 @@ foreach my $test ( }; } -my $ward_alert = FixMyStreet::App->model('DB::Alert')->find_or_create( +my $ward_alert = FixMyStreet::DB->resultset('Alert')->find_or_create( { user => $user, parameter => 7117, @@ -352,7 +352,7 @@ my $ward_alert = FixMyStreet::App->model('DB::Alert')->find_or_create( } ); -my $report_to_council = FixMyStreet::App->model('DB::Problem')->find_or_create( +my $report_to_council = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'WS13 6YY', bodies_str => '2434', @@ -376,7 +376,7 @@ my $report_to_council = FixMyStreet::App->model('DB::Problem')->find_or_create( } ); -my $report_to_county_council = FixMyStreet::App->model('DB::Problem')->find_or_create( +my $report_to_county_council = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'WS13 6YY', bodies_str => '2240', @@ -400,7 +400,7 @@ my $report_to_county_council = FixMyStreet::App->model('DB::Problem')->find_or_c } ); -my $report_outside_district = FixMyStreet::App->model('DB::Problem')->find_or_create( +my $report_outside_district = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'WS13 6YY', bodies_str => '2221', @@ -427,7 +427,7 @@ my $report_outside_district = FixMyStreet::App->model('DB::Problem')->find_or_cr subtest "check alerts from cobrand send main site url for alerts for different council" => sub { $mech->clear_emails_ok; - my $sent = FixMyStreet::App->model('DB::AlertSent')->search( + my $sent = FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => $ward_alert->id, } @@ -436,7 +436,7 @@ subtest "check alerts from cobrand send main site url for alerts for different c FixMyStreet::override_config { MAPIT_URL => 'http://mapit.mysociety.org/', }, sub { - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); }; my $email = $mech->get_email; @@ -453,7 +453,7 @@ subtest "check alerts from cobrand send main site url for alerts for different c }; -my $local_alert = FixMyStreet::App->model('DB::Alert')->find_or_create( +my $local_alert = FixMyStreet::DB->resultset('Alert')->find_or_create( { user => $user, parameter => -1.731322, @@ -468,13 +468,13 @@ my $local_alert = FixMyStreet::App->model('DB::Alert')->find_or_create( subtest "check local alerts from cobrand send main site url for alerts for different council" => sub { $mech->clear_emails_ok; - my $sent = FixMyStreet::App->model('DB::AlertSent')->search( + my $sent = FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => $local_alert->id, } )->delete; - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); my $email = $mech->get_email; my $body = $email->body; @@ -494,7 +494,7 @@ subtest "correct i18n-ed summary for state of closed" => sub { $report->update( { state => 'closed' } ); $alert->update( { lang => 'nb', cobrand => 'fiksgatami' } ); - FixMyStreet::App->model('DB::AlertSent')->search( { + FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => $alert->id, parameter => $comment->id, } )->delete; @@ -502,7 +502,7 @@ subtest "correct i18n-ed summary for state of closed" => sub { FixMyStreet::override_config { ALLOWED_COBRANDS => [ 'fiksgatami' ], }, sub { - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); }; $mech->email_count_is( 1 ); diff --git a/t/app/model/comment.t b/t/app/model/comment.t index 3141af828..ae93824a7 100644 --- a/t/app/model/comment.t +++ b/t/app/model/comment.t @@ -6,9 +6,9 @@ use warnings; use Test::More tests => 2; use FixMyStreet; -use FixMyStreet::App; +use FixMyStreet::DB; -my $comment_rs = FixMyStreet::App->model('DB::Comment'); +my $comment_rs = FixMyStreet::DB->resultset('Comment'); my $comment = $comment_rs->new( { diff --git a/t/app/model/extra.t b/t/app/model/extra.t index 21c37336e..52e2d839c 100644 --- a/t/app/model/extra.t +++ b/t/app/model/extra.t @@ -3,13 +3,11 @@ use warnings; use Test::More; use utf8; -use FixMyStreet::App; +use FixMyStreet::DB; use Data::Dumper; use DateTime; -my $c = FixMyStreet::App->new; - -my $db = FixMyStreet::App->model('DB')->schema; +my $db = FixMyStreet::DB->connect; $db->txn_begin; my $body = $db->resultset('Body')->create({ name => 'ExtraTestingBody' }); diff --git a/t/app/model/moderation.t b/t/app/model/moderation.t index cdc9a91b0..8fa333db4 100644 --- a/t/app/model/moderation.t +++ b/t/app/model/moderation.t @@ -4,17 +4,17 @@ use Test::More; use Test::Exception; use utf8; -use FixMyStreet::App; +use FixMyStreet::DB; use Data::Dumper; use DateTime; my $dt = DateTime->now; -my $user = FixMyStreet::App->model('DB::User')->find_or_create({ +my $user = FixMyStreet::DB->resultset('User')->find_or_create({ name => 'Bob', email => 'bob@example.com', }); sub get_report_and_original_data { - my $report = FixMyStreet::App->model('DB::Problem')->create( + my $report = FixMyStreet::DB->resultset('Problem')->create( { postcode => 'BR1 3SB', bodies_str => '', diff --git a/t/app/model/photoset.t b/t/app/model/photoset.t index 9e566f873..938c77b2a 100644 --- a/t/app/model/photoset.t +++ b/t/app/model/photoset.t @@ -4,7 +4,7 @@ use Test::More; use Test::Exception; use utf8; -use FixMyStreet::App; +use FixMyStreet::DB; use Data::Dumper; use DateTime; use Path::Tiny 'path'; @@ -12,19 +12,22 @@ use File::Temp 'tempdir'; my $dt = DateTime->now; -my $c = FixMyStreet::App->new; my $UPLOAD_DIR = tempdir( CLEANUP => 1 ); -local $c->config->{UPLOAD_DIR} = $UPLOAD_DIR; -my $user = $c->model('DB::User')->find_or_create({ +my $db = FixMyStreet::DB->storage->schema; + +my $user = $db->resultset('User')->find_or_create({ name => 'Bob', email => 'bob@example.com', }); -my $image_path = path('t/app/controller/sample.jpg'); +FixMyStreet::override_config { + UPLOAD_DIR => $UPLOAD_DIR, +}, sub { -my $db = FixMyStreet::App->model('DB')->schema; $db->txn_begin; +my $image_path = path('t/app/controller/sample.jpg'); + sub make_report { my $photo_data = shift; return $db->resultset('Problem')->create({ @@ -54,23 +57,25 @@ sub make_report { subtest 'Photoset with photo inline in DB' => sub { my $report = make_report( $image_path->slurp ); - my $photoset = $report->get_photoset($c); + my $photoset = $report->get_photoset(); is $photoset->num_images, 1, 'Found just 1 image'; }; $image_path->copy( path( $UPLOAD_DIR, '0123456789012345678901234567890123456789.jpeg' ) ); subtest 'Photoset with 1 referenced photo' => sub { my $report = make_report( '0123456789012345678901234567890123456789' ); - my $photoset = $report->get_photoset($c); + my $photoset = $report->get_photoset(); is $photoset->num_images, 1, 'Found just 1 image'; }; subtest 'Photoset with 1 referenced photo' => sub { my $report = make_report( '0123456789012345678901234567890123456789,0123456789012345678901234567890123456789,0123456789012345678901234567890123456789' ); - my $photoset = $report->get_photoset($c); + my $photoset = $report->get_photoset(); is $photoset->num_images, 3, 'Found 3 images'; }; $db->txn_rollback; +}; + done_testing(); diff --git a/t/app/model/problem.t b/t/app/model/problem.t index 82569d72a..6f706a22a 100644 --- a/t/app/model/problem.t +++ b/t/app/model/problem.t @@ -7,13 +7,13 @@ use Test::More; use FixMyStreet::TestMech; use FixMyStreet; -use FixMyStreet::App; +use FixMyStreet::DB; use mySociety::Locale; use Sub::Override; mySociety::Locale::gettext_domain('FixMyStreet'); -my $problem_rs = FixMyStreet::App->model('DB::Problem'); +my $problem_rs = FixMyStreet::DB->resultset('Problem'); my $problem = $problem_rs->new( { @@ -147,7 +147,7 @@ for my $test ( }; } -my $user = FixMyStreet::App->model('DB::User')->find_or_create( +my $user = FixMyStreet::DB->resultset('User')->find_or_create( { email => 'system_user@example.com' } @@ -161,7 +161,7 @@ $problem->insert; my $tz_local = DateTime::TimeZone->new( name => 'local' ); -my $body = FixMyStreet::App->model('DB::Body')->new({ +my $body = FixMyStreet::DB->resultset('Body')->new({ name => 'Edinburgh City Council' }); @@ -521,7 +521,7 @@ foreach my $test ( { $mech->clear_emails_ok; - FixMyStreet::App->model('DB::Problem')->search( + $problem_rs->search( { whensent => undef } @@ -541,7 +541,7 @@ foreach my $test ( { } ); FixMyStreet::override_config $override, sub { - FixMyStreet::App->model('DB::Problem')->send_reports(); + $problem_rs->send_reports(); }; $mech->email_count_is( $test->{ email_count } ); @@ -596,7 +596,7 @@ subtest 'check can set mutiple emails as a single contact' => sub { $mech->clear_emails_ok; - FixMyStreet::App->model('DB::Problem')->search( + $problem_rs->search( { whensent => undef } @@ -615,7 +615,7 @@ subtest 'check can set mutiple emails as a single contact' => sub { } ); FixMyStreet::override_config $override, sub { - FixMyStreet::App->model('DB::Problem')->send_reports(); + $problem_rs->send_reports(); }; $mech->email_count_is(1); @@ -630,7 +630,7 @@ subtest 'check can turn on report sent email alerts' => sub { ); $mech->clear_emails_ok; - FixMyStreet::App->model('DB::Problem')->search( + $problem_rs->search( { whensent => undef } @@ -648,7 +648,7 @@ subtest 'check can turn on report sent email alerts' => sub { send_fail_count => 0, } ); - FixMyStreet::App->model('DB::Problem')->send_reports(); + $problem_rs->send_reports(); $mech->email_count_is( 2 ); my @emails = $mech->get_email; @@ -675,7 +675,7 @@ subtest 'check can turn on report sent email alerts' => sub { subtest 'check iOS app store test reports not sent' => sub { $mech->clear_emails_ok; - FixMyStreet::App->model('DB::Problem')->search( + $problem_rs->search( { whensent => undef } @@ -692,7 +692,7 @@ subtest 'check iOS app store test reports not sent' => sub { send_fail_count => 0, } ); - FixMyStreet::App->model('DB::Problem')->send_reports(); + $problem_rs->send_reports(); $mech->email_count_is( 0 ); @@ -704,7 +704,7 @@ subtest 'check iOS app store test reports not sent' => sub { subtest 'check reports from abuser not sent' => sub { $mech->clear_emails_ok; - FixMyStreet::App->model('DB::Problem')->search( + $problem_rs->search( { whensent => undef } @@ -721,7 +721,7 @@ subtest 'check reports from abuser not sent' => sub { send_fail_count => 0, } ); - FixMyStreet::App->model('DB::Problem')->send_reports(); + $problem_rs->send_reports(); $mech->email_count_is( 1 ); @@ -734,10 +734,10 @@ subtest 'check reports from abuser not sent' => sub { whensent => undef, } ); - my $abuse = FixMyStreet::App->model('DB::Abuse')->create( { email => $problem->user->email } ); + my $abuse = FixMyStreet::DB->resultset('Abuse')->create( { email => $problem->user->email } ); $mech->clear_emails_ok; - FixMyStreet::App->model('DB::Problem')->send_reports(); + $problem_rs->send_reports(); $mech->email_count_is( 0 ); diff --git a/t/app/model/questionnaire.t b/t/app/model/questionnaire.t index 240d6d050..f82b071bd 100644 --- a/t/app/model/questionnaire.t +++ b/t/app/model/questionnaire.t @@ -8,9 +8,9 @@ use Test::More; use FixMyStreet; use FixMyStreet::TestMech; -my $user = FixMyStreet::App->model('DB::User')->find_or_create( { email => 'test@example.com' } ); +my $user = FixMyStreet::DB->resultset('User')->find_or_create( { email => 'test@example.com' } ); -my $problem = FixMyStreet::App->model('DB::Problem')->create( +my $problem = FixMyStreet::DB->resultset('Problem')->create( { postcode => 'EH99 1SP', latitude => 1, @@ -106,7 +106,7 @@ for my $test ( $mech->email_count_is(0); - FixMyStreet::App->model('DB::Questionnaire') + FixMyStreet::DB->resultset('Questionnaire') ->send_questionnaires( { site => 'fixmystreet' } ); $mech->email_count_is( $test->{send_email} ); diff --git a/t/app/model/token.t b/t/app/model/token.t index d72574bb1..c98cea395 100644 --- a/t/app/model/token.t +++ b/t/app/model/token.t @@ -6,7 +6,7 @@ use warnings; use Test::More; use FixMyStreet; -use FixMyStreet::App; +use FixMyStreet::DB; my %tests = ( nested_hash => { foo => 'bar', and => [ 'baz', 'bundy' ] }, @@ -14,7 +14,7 @@ my %tests = ( scalar => 123, ); -my $token_rs = FixMyStreet::App->model('DB::Token'); +my $token_rs = FixMyStreet::DB->resultset('Token'); foreach my $test_data_name ( sort keys %tests ) { my $test_data = $tests{$test_data_name}; diff --git a/t/app/sendreport/email.t b/t/app/sendreport/email.t index 65cd7bfa8..eacc6dcf6 100644 --- a/t/app/sendreport/email.t +++ b/t/app/sendreport/email.t @@ -6,7 +6,7 @@ use warnings; use Test::More; use FixMyStreet; -use FixMyStreet::App; +use FixMyStreet::DB; use FixMyStreet::SendReport::Email; use FixMyStreet::TestMech; use mySociety::Locale; @@ -17,7 +17,7 @@ my $e = FixMyStreet::SendReport::Email->new(); # area id 1000 my $params = { id => 1000, name => 'Council of the Thousand' }; -my $body = FixMyStreet::App->model('DB::Body')->find_or_create($params); +my $body = FixMyStreet::DB->resultset('Body')->find_or_create($params); ok $body, "found/created body"; my $contact = $mech->create_contact_ok( @@ -27,7 +27,7 @@ my $contact = $mech->create_contact_ok( note => '', ); -my $row = FixMyStreet::App->model('DB::Problem')->new( { +my $row = FixMyStreet::DB->resultset('Problem')->new( { bodies_str => '1000', category => 'category', cobrand => '', diff --git a/t/cobrand/bromley.t b/t/cobrand/bromley.t index fdded5606..91b34a289 100644 --- a/t/cobrand/bromley.t +++ b/t/cobrand/bromley.t @@ -21,7 +21,7 @@ my @reports = $mech->create_problems_for_body( 1, $body->id, 'Test', { my $report = $reports[0]; for my $update ('in progress', 'unable to fix') { - FixMyStreet::App->model('DB::Comment')->find_or_create( { + FixMyStreet::DB->resultset('Comment')->find_or_create( { problem_state => $update, problem_id => $report->id, user_id => $user->id, @@ -48,7 +48,7 @@ subtest 'testing special Open311 behaviour', sub { FixMyStreet::override_config { SEND_REPORTS_ON_STAGING => 1, }, sub { - FixMyStreet::App->model('DB::Problem')->send_reports(); + FixMyStreet::DB->resultset('Problem')->send_reports(); }; $report->discard_changes; ok $report->whensent, 'Report marked as sent'; diff --git a/t/cobrand/closest.t b/t/cobrand/closest.t index d06f7e9a0..43b36f608 100644 --- a/t/cobrand/closest.t +++ b/t/cobrand/closest.t @@ -4,7 +4,7 @@ use warnings; use Test::More; use mySociety::Locale; -use FixMyStreet::App; +use FixMyStreet::DB; use FixMyStreet::TestMech; my $mech = FixMyStreet::TestMech->new; @@ -16,7 +16,7 @@ mySociety::Locale::gettext_domain( 'FixMyStreet' ); my $c = FixMyStreet::Cobrand::UK->new(); my $user = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); ok $user, "created test user"; @@ -29,7 +29,7 @@ my $dt = DateTime->new( second => 23 ); -my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( +my $report = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'SW1A 1AA', bodies_str => '2504', diff --git a/t/cobrand/fixamingata.t b/t/cobrand/fixamingata.t index d181d3890..65236e6e1 100644 --- a/t/cobrand/fixamingata.t +++ b/t/cobrand/fixamingata.t @@ -43,7 +43,7 @@ $mech->email_count_is(0); FixMyStreet::override_config { ALLOWED_COBRANDS => [ 'fixamingata' ], }, sub { - FixMyStreet::App->model('DB::Problem')->send_reports(); + FixMyStreet::DB->resultset('Problem')->send_reports(); }; my $email = $mech->get_email; like $email->header('Content-Type'), qr/iso-8859-1/, 'encoding looks okay'; @@ -53,16 +53,16 @@ like $email->body, qr/V=E4nligen,/, 'signature looks correct'; $mech->clear_emails_ok; my $user = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); ok $user, "created test user"; my $user2 = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'commenter@example.com', name => 'Commenter' } ); ok $user2, "created comment user"; -my $comment = FixMyStreet::App->model('DB::Comment')->find_or_create({ +my $comment = FixMyStreet::DB->resultset('Comment')->find_or_create({ problem_id => $report->id, user_id => $user2->id, name => 'Other User', @@ -74,7 +74,7 @@ my $comment = FixMyStreet::App->model('DB::Comment')->find_or_create({ $comment->confirmed( \"current_timestamp - '3 days'::interval" ); $comment->update; -my $alert = FixMyStreet::App->model('DB::Alert')->find_or_create({ +my $alert = FixMyStreet::DB->resultset('Alert')->find_or_create({ user => $user, parameter => $report->id, alert_type => 'new_updates', @@ -86,7 +86,7 @@ my $alert = FixMyStreet::App->model('DB::Alert')->find_or_create({ FixMyStreet::override_config { ALLOWED_COBRANDS => [ 'fixamingata' ], }, sub { - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); }; $mech->email_count_is(1); diff --git a/t/cobrand/fixmybarangay.t b/t/cobrand/fixmybarangay.t index 316739dfa..00e792341 100644 --- a/t/cobrand/fixmybarangay.t +++ b/t/cobrand/fixmybarangay.t @@ -30,8 +30,8 @@ $bsn->update( { send_method => 'Email' } ); my $dps = $mech->create_body_ok( 3, 'DPS', id => 3 ); $dps->update( { send_method => 'Open311', endpoint => 'http://dps.endpoint.example.com', jurisdiction => 'FMB', api_key => 'test' } ); -FixMyStreet::App->model('DB::BodyArea')->find_or_create({ area_id => 1, body_id => $dps->id }); -FixMyStreet::App->model('DB::BodyArea')->find_or_create({ area_id => 2, body_id => $dps->id }); +FixMyStreet::DB->resultset('BodyArea')->find_or_create({ area_id => 1, body_id => $dps->id }); +FixMyStreet::DB->resultset('BodyArea')->find_or_create({ area_id => 2, body_id => $dps->id }); # Create contacts for these bodies # TODO: log in as a Bgy user, and create a report using the front end, @@ -72,7 +72,7 @@ $mech->email_count_is(0); FixMyStreet::override_config { SEND_REPORTS_ON_STAGING => 1, }, sub { - FixMyStreet::App->model('DB::Problem')->send_reports('fixmybarangay'); + FixMyStreet::DB->resultset('Problem')->send_reports('fixmybarangay'); }; # Check BGY one sent by email @@ -89,10 +89,10 @@ is $dps_report->send_method_used, 'Open311', 'DPS report sent via Open311'; is $dps_report->external_id, 248, 'DPS report has right external ID'; my $fmb_test_email = 'luz_test_user@example.com'; -my $user = FixMyStreet::App->model('DB::User')->find_or_create( { email => $fmb_test_email, from_body => $luz->id, password => 'fmbsecret' } ); +my $user = FixMyStreet::DB->resultset('User')->find_or_create( { email => $fmb_test_email, from_body => $luz->id, password => 'fmbsecret' } ); ok $user, "test user does exist"; -my $alert = FixMyStreet::App->model('DB::Alert')->find_or_create({ +my $alert = FixMyStreet::DB->resultset('Alert')->find_or_create({ user => $user, parameter => '-0.142497580865087', parameter2 => '51.5016605453401', @@ -105,7 +105,7 @@ my $alert = FixMyStreet::App->model('DB::Alert')->find_or_create({ FixMyStreet::override_config { ALLOWED_COBRANDS => [ 'fixmybarangay' ], }, sub { - FixMyStreet::App->model('DB::AlertType')->email_alerts(); + FixMyStreet::DB->resultset('AlertType')->email_alerts(); }; $mech->email_count_is(1); diff --git a/t/cobrand/get_body_sender.t b/t/cobrand/get_body_sender.t index a9ba49479..66cfc02b7 100644 --- a/t/cobrand/get_body_sender.t +++ b/t/cobrand/get_body_sender.t @@ -4,7 +4,7 @@ use warnings; use Test::More; use mySociety::Locale; -use FixMyStreet::App; +use FixMyStreet::DB; use_ok 'FixMyStreet::Cobrand'; @@ -12,10 +12,10 @@ mySociety::Locale::gettext_domain( 'FixMyStreet' ); my $c = FixMyStreet::Cobrand::FixMyStreet->new(); -FixMyStreet::App->model('DB::BodyArea')->search( { body_id => 1000 } )->delete; -FixMyStreet::App->model('DB::Body')->search( { name => 'Body of a Thousand' } )->delete; +FixMyStreet::DB->resultset('BodyArea')->search( { body_id => 1000 } )->delete; +FixMyStreet::DB->resultset('Body')->search( { name => 'Body of a Thousand' } )->delete; -my $body = FixMyStreet::App->model('DB::Body')->find_or_create({ +my $body = FixMyStreet::DB->resultset('Body')->find_or_create({ id => 1000, name => 'Body of a Thousand', }); diff --git a/t/cobrand/seesomething.t b/t/cobrand/seesomething.t index 57a8a11ed..09114f6f9 100644 --- a/t/cobrand/seesomething.t +++ b/t/cobrand/seesomething.t @@ -10,7 +10,7 @@ use FixMyStreet::TestMech; my $EMAIL = 'seesomething@example.com'; my $mech = FixMyStreet::TestMech->new; -my $db = FixMyStreet::App->model('DB')->schema; +my $db = FixMyStreet::DB->storage->schema; my $dt_parser = $db->storage->datetime_parser; $db->txn_begin; @@ -32,7 +32,7 @@ $user->update({ from_body => $body }); my $date = $dt_parser->format_datetime(DateTime->now); -my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( { +my $report = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'EH1 1BB', bodies_str => '2520', areas => ',2520,', diff --git a/t/cobrand/zurich.t b/t/cobrand/zurich.t index 721ee547c..b686f78ae 100644 --- a/t/cobrand/zurich.t +++ b/t/cobrand/zurich.t @@ -19,9 +19,7 @@ use Path::Tiny; # commonlib/bin/gettext-makemo FixMyStreet use FixMyStreet; -my $c = FixMyStreet::App->new(); -my $cobrand = FixMyStreet::Cobrand::Zurich->new({ c => $c }); -$c->stash->{cobrand} = $cobrand; +my $cobrand = FixMyStreet::Cobrand::Zurich->new(); my $sample_file = path(__FILE__)->parent->parent->child("app/controller/sample.jpg"); ok $sample_file->exists, "sample file $sample_file exists"; @@ -37,7 +35,7 @@ sub send_reports_for_zurich { ALLOWED_COBRANDS => ['zurich'] }, sub { # Actually send the report - $c->model('DB::Problem')->send_reports('zurich'); + FixMyStreet::DB->resultset('Problem')->send_reports('zurich'); }; } sub reset_report_state { @@ -195,7 +193,7 @@ subtest "changing of categories" => sub { sub get_moderated_count { # my %date_params = ( ); - # my $moderated = FixMyStreet::App->model('DB::Problem')->search({ + # my $moderated = FixMyStreet::DB->resultset('Problem')->search({ # extra => { like => '%moderated_overdue,I1:0%' }, %date_params } )->count; # return $moderated; @@ -848,7 +846,7 @@ subtest "test stats" => sub { subtest "test admin_log" => sub { diag $report->id; - my @entries = FixMyStreet::App->model('DB::AdminLog')->search({ + my @entries = FixMyStreet::DB->resultset('AdminLog')->search({ object_type => 'problem', object_id => $report->id, }); @@ -868,7 +866,6 @@ subtest 'email images to external partners' => sub { my $photo = path(__FILE__)->parent->child('zurich-logo_portal.x.jpg')->slurp_raw; my $photoset = FixMyStreet::App::Model::PhotoSet->new({ - c => $c, data_items => [ $photo ], }); my $fileid = $photoset->data; diff --git a/t/map/tilma/original.t b/t/map/tilma/original.t index 9e296686d..4ddeed8e0 100644 --- a/t/map/tilma/original.t +++ b/t/map/tilma/original.t @@ -3,7 +3,7 @@ use strict; use warnings; use Test::More; -use FixMyStreet::App; +use FixMyStreet::DB; use FixMyStreet::Map; use FixMyStreet::TestMech; use DateTime; @@ -20,14 +20,14 @@ my $c = ctx_request('http://fixmystreet.com/test?bbox=-7.6,49.7,-7.5,49.8'); $mech->delete_user('test@example.com'); my $user = - FixMyStreet::App->model('DB::User') + FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); ok $user, "created test user"; my $dt = DateTime->now(); -my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( +my $report = FixMyStreet::DB->resultset('Problem')->find_or_create( { postcode => 'SW1A 1AA', bodies_str => '2504', diff --git a/t/open311.t b/t/open311.t index 15bebe2fc..6333355e8 100644 --- a/t/open311.t +++ b/t/open311.t @@ -5,7 +5,7 @@ use strict; use warnings; use Test::More; use Test::Warn; -use FixMyStreet::App; +use FixMyStreet::DB; use CGI::Simple; use HTTP::Response; use DateTime; @@ -26,9 +26,9 @@ is $o->_process_error( '503 - service unavailable' ), 'unknown error', 'error te my $o2 = Open311->new( endpoint => 'http://192.168.50.1/open311/', jurisdiction => 'example.org' ); -my $u = FixMyStreet::App->model('DB::User')->new( { email => 'test@example.org', name => 'A User' } ); +my $u = FixMyStreet::DB->resultset('User')->new( { email => 'test@example.org', name => 'A User' } ); -my $p = FixMyStreet::App->model('DB::Problem')->new( { +my $p = FixMyStreet::DB->resultset('Problem')->new( { latitude => 1, longitude => 1, title => 'title', @@ -45,12 +45,12 @@ warning_like {$o2->send_service_request( $p, { url => 'http://example.com/' }, 1 my $dt = DateTime->now(); -my $user = FixMyStreet::App->model('DB::User')->new( { +my $user = FixMyStreet::DB->resultset('User')->new( { name => 'Test User', email => 'test@example.com', } ); -my $problem = FixMyStreet::App->model('DB::Problem')->new( { +my $problem = FixMyStreet::DB->resultset('Problem')->new( { id => 80, external_id => 81, state => 'confirmed', @@ -207,7 +207,7 @@ for my $test ( } -my $comment = FixMyStreet::App->model('DB::Comment')->new( { +my $comment = FixMyStreet::DB->resultset('Comment')->new( { id => 38362, user => $user, problem => $problem, @@ -394,7 +394,7 @@ for my $test ( my $dt2 = $dt->clone; $dt2->add( 'minutes' => 1 ); -my $comment2 = FixMyStreet::App->model('DB::Comment')->new( { +my $comment2 = FixMyStreet::DB->resultset('Comment')->new( { id => 38363, user => $user, problem => $problem, diff --git a/t/open311/endpoint/warwick.t b/t/open311/endpoint/warwick.t index b51c601f3..5c47cd529 100644 --- a/t/open311/endpoint/warwick.t +++ b/t/open311/endpoint/warwick.t @@ -7,7 +7,7 @@ use Test::MockTime ':all'; use Data::Dumper; use JSON; -use FixMyStreet::App; +use FixMyStreet::DB; use Module::Loaded; BEGIN { mark_as_loaded('DBD::Oracle') } @@ -141,16 +141,16 @@ subtest "End to end" => sub { my $WARWICKSHIRE_MAPIT_ID = 2243; - my $db = FixMyStreet::App->model('DB')->schema; + my $db = FixMyStreet::DB->connect; $db->txn_begin; - my $body = FixMyStreet::App->model('DB::Body')->find_or_create( { + my $body = FixMyStreet::DB->resultset('Body')->find_or_create( { id => $WARWICKSHIRE_MAPIT_ID, name => 'Warwickshire County Council', }); - my $user = FixMyStreet::App->model('DB::User') + my $user = FixMyStreet::DB->resultset('User') ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); $body->update({ @@ -175,7 +175,7 @@ subtest "End to end" => sub { my $bodies = self_rs($body); - my $p = Open311::PopulateServiceList->new( bodies => $bodies, verbose => 0 ); + my $p = Open311::PopulateServiceList->new( bodies => $bodies, verbose => 0, schema => $db ); $p->process_bodies; is $body->contacts->count, 1, 'Categories imported from Open311'; @@ -183,7 +183,7 @@ subtest "End to end" => sub { set_fixed_time('2014-07-20T15:05:00Z'); - my $problem = FixMyStreet::App->model('DB::Problem')->create({ + my $problem = FixMyStreet::DB->resultset('Problem')->create({ postcode => 'WC1 1AA', bodies_str => $WARWICKSHIRE_MAPIT_ID, areas => ",$WARWICKSHIRE_MAPIT_ID,", @@ -219,7 +219,7 @@ subtest "End to end" => sub { # self_rs($problem)->send_reports; ## instead, as we are in a transaction, we'll just delete everything else. - my $rs = FixMyStreet::App->model('DB::Problem'); + my $rs = FixMyStreet::DB->resultset('Problem'); $rs->search({ id => { '!=', $problem->id } })->delete; $rs->send_reports; }; @@ -242,7 +242,7 @@ subtest "End to end" => sub { is $problem->state, 'confirmed', 'sanity check status'; - my $updates = Open311::GetServiceRequestUpdates->new( verbose => 1 ); + my $updates = Open311::GetServiceRequestUpdates->new( verbose => 1, schema => $db ); $updates->fetch; $problem->discard_changes; diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t index 0ab5b232d..46c3feda4 100644 --- a/t/open311/getservicerequestupdates.t +++ b/t/open311/getservicerequestupdates.t @@ -10,17 +10,17 @@ use_ok( 'Open311' ); use_ok( 'Open311::GetServiceRequestUpdates' ); use DateTime; use DateTime::Format::W3CDTF; -use FixMyStreet::App; +use FixMyStreet::DB; -my $user = FixMyStreet::App->model('DB::User')->find_or_create( +my $user = FixMyStreet::DB->resultset('User')->find_or_create( { email => 'system_user@example.com' } ); my %bodies = ( - 2482 => FixMyStreet::App->model("DB::Body")->new({ id => 2482 }), - 2651 => FixMyStreet::App->model("DB::Body")->new({ id => 2651 }), + 2482 => FixMyStreet::DB->resultset("Body")->new({ id => 2482 }), + 2651 => FixMyStreet::DB->resultset("Body")->new({ id => 2651 }), ); my $requests_xml = qq{<?xml version="1.0" encoding="utf-8"?> @@ -104,7 +104,7 @@ subtest 'check extended request parsed correctly' => sub { }; -my $problem_rs = FixMyStreet::App->model('DB::Problem'); +my $problem_rs = FixMyStreet::DB->resultset('Problem'); my $problem = $problem_rs->new( { postcode => 'EH99 1SP', @@ -353,7 +353,7 @@ for my $test ( is $problem->comments->count, 1, 'comment count'; $problem->discard_changes; - my $c = FixMyStreet::App->model('DB::Comment')->search( { external_id => $test->{external_id} } )->first; + my $c = FixMyStreet::DB->resultset('Comment')->search( { external_id => $test->{external_id} } )->first; ok $c, 'comment exists'; is $c->text, $test->{description}, 'text correct'; is $c->mark_fixed, $test->{mark_fixed}, 'mark_closed correct'; @@ -527,7 +527,7 @@ subtest 'check that existing comments are not duplicated' => sub { $problem->comments->delete; - my $comment = FixMyStreet::App->model('DB::Comment')->new( + my $comment = FixMyStreet::DB->resultset('Comment')->new( { problem => $problem, external_id => 638344, @@ -660,7 +660,7 @@ foreach my $test ( { $problem->update; my @alerts = map { - my $alert = FixMyStreet::App->model('DB::Alert')->create( { + my $alert = FixMyStreet::DB->resultset('Alert')->create( { alert_type => 'new_updates', parameter => $problem->id, confirmed => 1, @@ -680,7 +680,7 @@ foreach my $test ( { $update->update_comments( $o, $bodies{2482} ); $problem->discard_changes; - my $alerts_sent = FixMyStreet::App->model('DB::AlertSent')->search( + my $alerts_sent = FixMyStreet::DB->resultset('AlertSent')->search( { alert_id => [ map $_->id, @alerts ], parameter => $problem->comments->first->id, diff --git a/t/open311/getupdates.t b/t/open311/getupdates.t index 7dc7ff164..fef51e0e1 100644 --- a/t/open311/getupdates.t +++ b/t/open311/getupdates.t @@ -5,17 +5,18 @@ use warnings; use Test::More; use FixMyStreet; +use FixMyStreet::DB; use_ok( 'Open311::GetUpdates' ); use_ok( 'Open311' ); -my $user = FixMyStreet::App->model('DB::User')->find_or_create( +my $user = FixMyStreet::DB->resultset('User')->find_or_create( { email => 'system_user@example.com' } ); -my $body = FixMyStreet::App->model('DB::Body')->new( { +my $body = FixMyStreet::DB->resultset('Body')->new( { name => 'Test Body', } ); @@ -42,7 +43,7 @@ UPDATED_DATETIME </service_requests> }; -my $problem_rs = FixMyStreet::App->model('DB::Problem'); +my $problem_rs = FixMyStreet::DB->resultset('Problem'); my $problem = $problem_rs->new( { postcode => 'EH99 1SP', diff --git a/t/open311/populate-service-list.t b/t/open311/populate-service-list.t index 1574732fb..f001926d2 100644 --- a/t/open311/populate-service-list.t +++ b/t/open311/populate-service-list.t @@ -4,7 +4,7 @@ use strict; use warnings; use Test::More; -use FixMyStreet::App; +use FixMyStreet::DB; use_ok( 'Open311::PopulateServiceList' ); use_ok( 'Open311' ); @@ -13,7 +13,7 @@ use_ok( 'Open311' ); my $processor = Open311::PopulateServiceList->new(); ok $processor, 'created object'; -my $body = FixMyStreet::App->model('DB::Body')->find_or_create( { +my $body = FixMyStreet::DB->resultset('Body')->find_or_create( { id => 1, name => 'Body Numero Uno', } ); @@ -22,7 +22,7 @@ $body->body_areas->find_or_create({ } ); my $BROMLEY = 'Bromley Council'; -my $bromley = FixMyStreet::App->model('DB::Body')->find_or_create( { +my $bromley = FixMyStreet::DB->resultset('Body')->find_or_create( { id => 2482, name => $BROMLEY, } ); @@ -32,7 +32,7 @@ $bromley->body_areas->find_or_create({ } ); subtest 'check basic functionality' => sub { - FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete(); + FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->delete(); my $service_list = get_xml_simple_object( get_standard_xml() ); @@ -40,14 +40,14 @@ subtest 'check basic functionality' => sub { $processor->_current_body( $body ); $processor->process_services( $service_list ); - my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->count(); + my $contact_count = FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->count(); is $contact_count, 3, 'correct number of contacts'; }; subtest 'check non open311 contacts marked as deleted' => sub { - FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete(); + FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->delete(); - my $contact = FixMyStreet::App->model('DB::Contact')->create( + my $contact = FixMyStreet::DB->resultset('Contact')->create( { body_id => 1, email => 'contact@example.com', @@ -66,17 +66,17 @@ subtest 'check non open311 contacts marked as deleted' => sub { $processor->_current_body( $body ); $processor->process_services( $service_list ); - my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->count(); + my $contact_count = FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->count(); is $contact_count, 4, 'correct number of contacts'; - $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1, deleted => 1 } )->count(); + $contact_count = FixMyStreet::DB->resultset('Contact')->search( { body_id => 1, deleted => 1 } )->count(); is $contact_count, 1, 'correct number of deleted contacts'; }; subtest 'check email changed if matching category' => sub { - FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete(); + FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->delete(); - my $contact = FixMyStreet::App->model('DB::Contact')->create( + my $contact = FixMyStreet::DB->resultset('Contact')->create( { body_id => 1, email => '009', @@ -102,14 +102,14 @@ subtest 'check email changed if matching category' => sub { is $contact->confirmed, 1, 'contact still confirmed'; is $contact->deleted, 0, 'contact still not deleted'; - my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->count(); + my $contact_count = FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->count(); is $contact_count, 3, 'correct number of contacts'; }; subtest 'check category name changed if updated' => sub { - FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete(); + FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->delete(); - my $contact = FixMyStreet::App->model('DB::Contact')->create( + my $contact = FixMyStreet::DB->resultset('Contact')->create( { body_id => 1, email => '001', @@ -136,14 +136,14 @@ subtest 'check category name changed if updated' => sub { is $contact->confirmed, 1, 'contact still confirmed'; is $contact->deleted, 0, 'contact still not deleted'; - my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->count(); + my $contact_count = FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->count(); is $contact_count, 3, 'correct number of contacts'; }; subtest 'check conflicting contacts not changed' => sub { - FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->delete(); + FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->delete(); - my $contact = FixMyStreet::App->model('DB::Contact')->create( + my $contact = FixMyStreet::DB->resultset('Contact')->create( { body_id => 1, email => 'existing@example.com', @@ -158,7 +158,7 @@ subtest 'check conflicting contacts not changed' => sub { ok $contact, 'contact created'; - my $contact2 = FixMyStreet::App->model('DB::Contact')->create( + my $contact2 = FixMyStreet::DB->resultset('Contact')->create( { body_id => 1, email => '001', @@ -191,7 +191,7 @@ subtest 'check conflicting contacts not changed' => sub { is $contact2->confirmed, 1, 'second contact contact still confirmed'; is $contact2->deleted, 0, 'second contact contact still not deleted'; - my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { body_id => 1 } )->count(); + my $contact_count = FixMyStreet::DB->resultset('Contact')->search( { body_id => 1 } )->count(); is $contact_count, 4, 'correct number of contacts'; }; @@ -215,7 +215,7 @@ subtest 'check meta data population' => sub { </service_definition> '; - my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create( + my $contact = FixMyStreet::DB->resultset('Contact')->find_or_create( { body_id => 1, email => '001', @@ -395,7 +395,7 @@ for my $test ( $services_xml =~ s/metadata>false/metadata>true/ms; } - my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create( + my $contact = FixMyStreet::DB->resultset('Contact')->find_or_create( { body_id => 1, email => '100', @@ -470,7 +470,7 @@ subtest 'check attribute ordering' => sub { </service_definition> '; - my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create( + my $contact = FixMyStreet::DB->resultset('Contact')->find_or_create( { body_id => 1, email => '001', @@ -572,7 +572,7 @@ subtest 'check bromely skip code' => sub { </service_definition> '; - my $contact = FixMyStreet::App->model('DB::Contact')->find_or_create( + my $contact = FixMyStreet::DB->resultset('Contact')->find_or_create( { body_id => 1, email => '001', |