aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/Open311/GetServiceRequestUpdates.pm
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2018-03-21 17:16:49 +0000
committerDave Arter <davea@mysociety.org>2018-03-28 15:31:17 +0100
commitf8a5b193d2eba23e8ba78209d4b70a05fb83a944 (patch)
tree1c9c759ba5c91c7dcf30fd22e168982288f998ac /perllib/Open311/GetServiceRequestUpdates.pm
parented6c2501b859a79b2284870b6f9ee2170ebf959a (diff)
Fetch and store external_status_code in GetServiceRequestUpdates
If the Open311 endpoint provides the external_status_code field in servicerequestupdates.xml output, it’s stored in each comment’s extra field as well as the problem’s extra field. This will make it possible to trigger response templates based on this value.
Diffstat (limited to 'perllib/Open311/GetServiceRequestUpdates.pm')
-rw-r--r--perllib/Open311/GetServiceRequestUpdates.pm9
1 files changed, 9 insertions, 0 deletions
diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm
index f2a319f15..8d05a358f 100644
--- a/perllib/Open311/GetServiceRequestUpdates.pm
+++ b/perllib/Open311/GetServiceRequestUpdates.pm
@@ -110,6 +110,7 @@ sub update_comments {
if ( !$c->first ) {
my $state = $open311->map_state( $request->{status} );
+ my $external_status_code = $request->{external_status_code};
my $comment = $self->schema->resultset('Comment')->new(
{
problem => $p,
@@ -126,6 +127,14 @@ sub update_comments {
}
);
+ # Some Open311 services, e.g. Confirm via open311-adapter, provide
+ # a more fine-grained status code that we use within FMS for
+ # response templates.
+ if ( $external_status_code ) {
+ $comment->set_extra_metadata(external_status_code =>$external_status_code);
+ $p->set_extra_metadata(external_status_code =>$external_status_code);
+ }
+
$open311->add_media($request->{media_url}, $comment)
if $request->{media_url};