aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/SendReport/Open311.pm20
-rw-r--r--perllib/Open311.pm25
-rw-r--r--t/open311.t98
3 files changed, 20 insertions, 123 deletions
diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm
index f876f2e48..804e876ee 100644
--- a/perllib/FixMyStreet/SendReport/Open311.pm
+++ b/perllib/FixMyStreet/SendReport/Open311.pm
@@ -29,10 +29,19 @@ 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/ ) {
- $extended_sendrequest = 1;
+
+ 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 );
}
# FIXME: we've already looked this up before
@@ -43,10 +52,9 @@ sub send {
} );
my $open311 = Open311->new(
- jurisdiction => $conf->jurisdiction,
- endpoint => $conf->endpoint,
- api_key => $conf->api_key,
- extended_sendrequest => $extended_sendrequest,
+ jurisdiction => $conf->jurisdiction,
+ endpoint => $conf->endpoint,
+ api_key => $conf->api_key,
);
# non standard west berks end points
diff --git a/perllib/Open311.pm b/perllib/Open311.pm
index 4e1cb933e..23208df1b 100644
--- a/perllib/Open311.pm
+++ b/perllib/Open311.pm
@@ -19,7 +19,6 @@ 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;
@@ -98,32 +97,14 @@ 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 ( $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;
- }
+ if ( $attr_name eq 'first_name' || $attr_name eq 'last_name' ) {
+ $params->{$attr_name} = $attr->{value} if $attr->{value};
+ next;
}
$attr_name =~ s/fms_extra_//;
my $name = sprintf( 'attribute[%s]', $attr_name );
diff --git a/t/open311.t b/t/open311.t
index 08e2ebd08..83b81d8aa 100644
--- a/t/open311.t
+++ b/t/open311.t
@@ -59,7 +59,6 @@ my $problem = FixMyStreet::App->model('DB::Problem')->new( {
latitude => 1,
longitude => 2,
user => $user,
- confirmed => $dt,
} );
subtest 'posting service request' => sub {
@@ -93,57 +92,6 @@ EOT
is $c->param('long'), 2, 'longitude correct';
is $c->param('description'), $description, 'descritpion correct';
is $c->param('service_code'), 'pothole', 'service code correct';
- is $c->param('northing'), undef, 'northing correct';
- is $c->param('easting'), undef, 'easting is not set';
- is $c->param('report_url'), undef, 'report_url is not set';
- is $c->param('service_request_id_ext'), undef, 'service_request_id_ext is not set';
- is $c->param('report_title'), undef, 'report_title is not set';
- is $c->param('email_alerts_requested'), undef, 'email_alerts_requested is not set';
- is $c->param('requested_datetime'), undef, 'requested_datetime is not set';
- is $c->param('public_anonymity_required'), undef, 'public_anonymity_required is not set';
-};
-
-subtest 'posting extended service request' => sub {
- my $extra = {
- northing => 'N',
- easting => 'E',
- url => 'http://example.com/report/1',
- };
-
- my $results = make_service_req( $problem, $extra, $problem->category, '<?xml version="1.0" encoding="utf-8"?><service_requests><request><service_request_id>248</service_request_id></request></service_requests>', 1 );
-
- is $results->{ res }, 248, 'got request id';
-
- my $req = $o->test_req_used;
-
- my $description = <<EOT;
-title: a problem
-
-detail: problem detail
-
-url: http://example.com/report/1
-
-Submitted via FixMyStreet
-EOT
-;
-
- my $c = CGI::Simple->new( $results->{ req }->content );
-
- is $c->param('email'), $user->email, 'correct email';
- is $c->param('first_name'), 'Test', 'correct first name';
- is $c->param('last_name'), 'User', 'correct last name';
- is $c->param('lat'), 1, 'latitide correct';
- is $c->param('long'), 2, 'longitude correct';
- is $c->param('description'), $description, 'descritpion correct';
- is $c->param('service_code'), 'pothole', 'service code correct';
- is $c->param('northing'), 'N', 'northing correct';
- is $c->param('easting'), 'E', 'easting correct';
- is $c->param('report_url'), 'http://example.com/report/1', 'report_url correct';
- is $c->param('service_request_id_ext'), $problem->id, 'service_request_id_ext correct';
- is $c->param('report_title'), 'a problem', 'report_title correct';
- is $c->param('email_alerts_requested'), 'FALSE', 'email_alerts_requested correct';
- is $c->param('requested_datetime'), $problem->confirmed, 'requested_datetime correct';
- is $c->param('public_anonymity_required'), 'FALSE', 'public_anonymity_required correct';
};
for my $test (
@@ -172,26 +120,6 @@ for my $test (
},
],
params => [
- [ 'first_name', 'Test', 'first name correct' ],
- [ 'last_name', 'User', 'last name correct' ],
- [ 'attribute[first_name]', 'First', 'correct first_name attribute param' ],
- [ 'attribute[last_name]', 'Last', 'correct last_name attribute param' ],
- ],
- },
- {
- desc => 'first and last names in extra used correctly with extended send request',
- extended_sendrequest => 1,
- extra => [
- {
- name => 'first_name',
- value => 'First',
- },
- {
- name => 'last_name',
- value => 'Last',
- },
- ],
- params => [
[ 'first_name', 'First', 'first name correct' ],
[ 'last_name', 'Last', 'last name correct' ],
[ 'attribute[first_name]', undef, 'no first_name attribute param' ],
@@ -214,23 +142,6 @@ for my $test (
]
],
},
- {
- title => 'magic fms_extra parameters handled correctly with extended send request',
- extended_sendrequest => 1,
- extra => [
- {
- name => 'fms_extra_title',
- value => 'Extra title',
- }
- ],
- params => [
- [
- 'attribute[title]',
- undef,
- 'no title attribute param'
- ]
- ],
- },
)
{
subtest $test->{desc} => sub {
@@ -239,8 +150,7 @@ for my $test (
my $extra = { url => 'http://example.com/report/1', };
my $results = make_service_req( $problem, $extra, $problem->category,
-'<?xml version="1.0" encoding="utf-8"?><service_requests><request><service_request_id>248</service_request_id></request></service_requests>',
- $test->{extended_sendrequest}
+'<?xml version="1.0" encoding="utf-8"?><service_requests><request><service_request_id>248</service_request_id></request></service_requests>'
);
my $req = $o->test_req_used;
my $c = CGI::Simple->new( $results->{req}->content );
@@ -420,9 +330,8 @@ sub make_service_req {
my $extra = shift;
my $service_code = shift;
my $xml = shift;
- my $extended = shift || 0;
- return make_req( $problem, $xml, 'send_service_request', 'requests.xml', $extended, $extra, $service_code );
+ return make_req( $problem, $xml, 'send_service_request', 'requests.xml', $extra, $service_code );
}
sub make_req {
@@ -430,11 +339,10 @@ sub make_req {
my $xml = shift;
my $method = shift;
my $path = shift;
- my $extended = shift;
my @args = @_;
my $o =
- Open311->new( test_mode => 1, end_point => 'http://localhost/o311', extended_sendrequest => $extended );
+ Open311->new( test_mode => 1, end_point => 'http://localhost/o311' );
my $test_res = HTTP::Response->new();
$test_res->code(200);