aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/Open311.pm11
-rw-r--r--perllib/Open311/GetServiceRequestUpdates.pm13
-rw-r--r--t/open311/getservicerequestupdates.t2
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';
};
}