diff options
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/SendReport/Open311.pm | 20 | ||||
-rw-r--r-- | perllib/Open311.pm | 25 |
2 files changed, 28 insertions, 17 deletions
diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm index 804e876ee..f876f2e48 100644 --- a/perllib/FixMyStreet/SendReport/Open311.pm +++ b/perllib/FixMyStreet/SendReport/Open311.pm @@ -29,19 +29,10 @@ sub send { foreach my $council ( keys %{ $self->councils } ) { my $conf = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $council, endpoint => { '!=', '' } } )->first; + my $extended_sendrequest = 0; # Extra bromley fields if ( $row->council =~ /2482/ ) { - - my $extra = $row->extra; - push @$extra, { name => 'northing', value => $h->{northing} }; - push @$extra, { name => 'easting', value => $h->{easting} }; - push @$extra, { name => 'report_url', value => $h->{url} }; - push @$extra, { name => 'service_request_id_ext', value => $row->id }; - push @$extra, { name => 'report_title', value => $row->title }; - push @$extra, { name => 'public_anonymity_required', value => $row->anonymous ? 'TRUE' : 'FALSE' }; - push @$extra, { name => 'email_alerts_requested', value => 'FALSE' }; # always false as can never request them - push @$extra, { name => 'requested_datetime', value => $row->confirmed }; - $row->extra( $extra ); + $extended_sendrequest = 1; } # FIXME: we've already looked this up before @@ -52,9 +43,10 @@ sub send { } ); my $open311 = Open311->new( - jurisdiction => $conf->jurisdiction, - endpoint => $conf->endpoint, - api_key => $conf->api_key, + jurisdiction => $conf->jurisdiction, + endpoint => $conf->endpoint, + api_key => $conf->api_key, + extended_sendrequest => $extended_sendrequest, ); # non standard west berks end points diff --git a/perllib/Open311.pm b/perllib/Open311.pm index 23208df1b..4e1cb933e 100644 --- a/perllib/Open311.pm +++ b/perllib/Open311.pm @@ -19,6 +19,7 @@ has debug => ( is => 'ro', isa => 'Bool', default => 0 ); has debug_details => ( is => 'rw', 'isa' => 'Str', default => '' ); has success => ( is => 'rw', 'isa' => 'Bool', default => 0 ); has error => ( is => 'rw', 'isa' => 'Str', default => '' ); +has extended_sendrequest => ( is => 'ro', isa => 'Bool', default => 0 ); sub get_service_list { my $self = shift; @@ -97,14 +98,32 @@ sub _populate_service_request_params { $params->{media_url} = $extra->{image_url}; } + if ( $self->extended_sendrequest ) { + $params->{northing} = $extra->{northing}; + $params->{easting} = $extra->{easting}; + $params->{report_url} = $extra->{url}; + $params->{service_request_id_ext} = $problem->id; + $params->{report_title} = $problem->title; + $params->{email_alerts_requested} = 'FALSE'; # always false + $params->{requested_datetime} = $problem->confirmed; + + $params->{public_anonymity_required} = $problem->anonymous ? 'TRUE' : 'FALSE'; + } + if ( $problem->extra ) { my $extras = $problem->extra; for my $attr ( @$extras ) { my $attr_name = $attr->{name}; - if ( $attr_name eq 'first_name' || $attr_name eq 'last_name' ) { - $params->{$attr_name} = $attr->{value} if $attr->{value}; - next; + if ( $self->extended_sendrequest ) { + if ( $attr_name eq 'first_name' || $attr_name eq 'last_name' ) { + $params->{$attr_name} = $attr->{value} if $attr->{value}; + next; + } + if ( $attr_name eq 'fms_extra_title' ) { + $params->{title} = $attr->{value} if $attr->{value}; + next; + } } $attr_name =~ s/fms_extra_//; my $name = sprintf( 'attribute[%s]', $attr_name ); |