diff options
author | Struan Donald <struan@exo.org.uk> | 2012-04-24 16:13:29 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2012-04-24 16:13:29 +0100 |
commit | 65e4864f4408a1560beca8746046c8a08a3971f4 (patch) | |
tree | d50ecd588e2030d1fb6794688d7f7162ae3af331 | |
parent | afa97893b54edd890527a80392492f0d10a739a1 (diff) |
Revert "correct misunderstanding of bromley spec"
Turns out I was correct the first time round :(
This reverts commit afa97893b54edd890527a80392492f0d10a739a1.
-rw-r--r-- | perllib/FixMyStreet/SendReport/Open311.pm | 20 | ||||
-rw-r--r-- | perllib/Open311.pm | 25 | ||||
-rw-r--r-- | t/open311.t | 98 |
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); |