diff options
author | Struan Donald <struan@exo.org.uk> | 2012-03-20 15:43:12 +0000 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2012-03-20 15:43:12 +0000 |
commit | 245e2f4ffd812c67ed4c4298cc1f142f59fe1b97 (patch) | |
tree | 54b075e16a3cda1a96fc4ded9345ef40cc309187 | |
parent | 95ffa6ce5fb32c09fcc389b69057a6abb0efec9a (diff) |
regularise data structure in open311 module as that is more sensible
-rw-r--r-- | perllib/Open311.pm | 11 | ||||
-rw-r--r-- | perllib/Open311/GetServiceRequestUpdates.pm | 13 | ||||
-rw-r--r-- | t/open311/getservicerequestupdates.t | 2 |
3 files changed, 12 insertions, 14 deletions
diff --git a/perllib/Open311.pm b/perllib/Open311.pm index 0773edc19..030e8092c 100644 --- a/perllib/Open311.pm +++ b/perllib/Open311.pm @@ -135,7 +135,16 @@ sub get_service_request_updates { my $params = {}; my $xml = $self->_get( $self->endpoints->{service_request_updates}, $params || undef ); - return $self->_get_xml_object( $xml ); + my $service_requests = $self->_get_xml_object( $xml ); + my $requests; + if ( ref $service_requests->{request_update } eq 'ARRAY' ) { + $requests = $service_requests->{request_update}; + } + else { + $requests = [ $service_requests->{request_update} ]; + } + + return $requests; } sub _get { diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm index 53dd7722b..c77b30f4f 100644 --- a/perllib/Open311/GetServiceRequestUpdates.pm +++ b/perllib/Open311/GetServiceRequestUpdates.pm @@ -10,18 +10,7 @@ has system_user => ( is => 'ro' ); sub update_comments { my ( $self, $open311, $council_details ) = @_; - my $service_requests = $open311->get_service_request_updates( ); - - my $requests; - - # XML::Simple is a bit inconsistent in how it structures - # things depending on the number of children an element has :( - if ( ref $service_requests->{request_update } eq 'ARRAY' ) { - $requests = $service_requests->{requesti_update}; - } - else { - $requests = [ $service_requests->{request_update} ]; - } + my $requests = $open311->get_service_request_updates( ); for my $request (@$requests) { # if it's a ref that means it's an empty element diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t index a64c9fbae..c9f97cd5a 100644 --- a/t/open311/getservicerequestupdates.t +++ b/t/open311/getservicerequestupdates.t @@ -70,7 +70,7 @@ for my $test ( my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $local_requests_xml } ); my $res = $o->get_service_request_updates; - is_deeply $res->{ request_update }, $test->{ res }, 'result looks correct'; + is_deeply $res->[0], $test->{ res }, 'result looks correct'; }; } |