aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
Diffstat (limited to 'perllib')
-rw-r--r--perllib/FixMyStreet/SendReport/Open311.pm20
-rw-r--r--perllib/Open311.pm25
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 );