diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-09-22 19:24:10 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-03-09 16:58:20 +0000 |
commit | 8b43050c549bc3bb233bab2b7bd5652dfbb39a12 (patch) | |
tree | 4609e33de0a3de95e88e831d83dae2dcbb763c07 /perllib/FixMyStreet/DB | |
parent | 491eb26e463c5976a159060782c0217cf450d4fc (diff) |
Refactor SendReport::Open311 to use cobrand hooks.
Avoid doing cobrand-specific logic within SendReport::Open311.
The hooks defined are:
open311_config: set extra fields
open311_pre_send: set endpoints and munge data
These are tested in the new t/app/sendreport/open311.t, which does
not send any actual reports, but just checks that all the data is
munged into the expected format. (tests under t/open311* should
already test the actual sending)
Remove unused Open311 special cases.
Diffstat (limited to 'perllib/FixMyStreet/DB')
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Body.pm | 15 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Problem.pm | 4 |
2 files changed, 16 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Body.pm b/perllib/FixMyStreet/DB/Result/Body.pm index 037b69352..6dac8821c 100644 --- a/perllib/FixMyStreet/DB/Result/Body.pm +++ b/perllib/FixMyStreet/DB/Result/Body.pm @@ -127,4 +127,19 @@ sub areas { return \%ids; } +=head2 get_cobrand_handler + +Get a cobrand object for this body, if there is one. + +e.g. + * if the problem was sent to Bromley it will return ::Bromley + * if the problem was sent to Camden it will return nothing + +=cut + +sub get_cobrand_handler { + my $self = shift; + return FixMyStreet::Cobrand->body_handler($self->areas); +} + 1; diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm index 4ccad3690..dcd5ecc71 100644 --- a/perllib/FixMyStreet/DB/Result/Problem.pm +++ b/perllib/FixMyStreet/DB/Result/Problem.pm @@ -1107,9 +1107,7 @@ has traffic_management_options => ( default => sub { my $self = shift; my $cobrand = $self->get_cobrand_logged; - if ( $cobrand->can('get_body_handler_for_problem') ) { - $cobrand = $cobrand->get_body_handler_for_problem( $self ); - } + $cobrand = $cobrand->call_hook(get_body_handler_for_problem => $self) || $cobrand; return $cobrand->traffic_management_options; }, ); |