From 83bc5b8c30a68203bc073b82be06585b7b6bd799 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Tue, 5 Dec 2017 09:16:03 -0500 Subject: Revert "Bug 1422329 - The phabricator conduit API method feed.query_id return data format has changed so the phabbugz_feed.pl daemon needs to be updated" This reverts commit 357528ba856fd85aee5967e5d7d8f4426bc8d5b6. --- extensions/PhabBugz/lib/Feed.pm | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'extensions/PhabBugz/lib/Feed.pm') diff --git a/extensions/PhabBugz/lib/Feed.pm b/extensions/PhabBugz/lib/Feed.pm index b2b681bbd..d178f249b 100644 --- a/extensions/PhabBugz/lib/Feed.pm +++ b/extensions/PhabBugz/lib/Feed.pm @@ -76,7 +76,7 @@ sub feed_query { foreach my $story_data (@$transactions) { my $skip = 0; my $story_id = $story_data->{id}; - my $story_phid = $story_data->{phid}; + my $story_phid = $story_data->{storyPHID}; my $author_phid = $story_data->{authorPHID}; my $object_phid = $story_data->{objectPHID}; my $story_text = $story_data->{text}; @@ -296,13 +296,25 @@ sub feed_transactions { my $data = { view => 'text' }; $data->{after} = $after if $after; my $result = request('feed.query_id', $data); - unless (ref $result->{result}{data} eq 'ARRAY' - && @{ $result->{result}{data} }) - { - return []; + + # Stupid Conduit. If the feed results are empty it returns + # an empty list ([]). If there is data it returns it in a + # hash ({}) so we have adjust to be consistent. + my $stories = ref $result->{result}{data} eq 'HASH' + ? $result->{result}{data} + : {}; + + # PHP array retain key order but Perl does not. So we will + # loop over the data and place the stories into a list instead + # of a hash. We will then sort the list by id. + my @story_list; + foreach my $story_phid (keys %$stories) { + my $story_data = $stories->{$story_phid}; + $story_data->{storyPHID} = $story_phid; + push(@story_list, $story_data); } - # Guarantee that the data is in ascending ID order - return [ sort { $a->{id} <=> $b->{id} } @{ $result->{result}{data} } ]; + + return [ sort { $a->{id} <=> $b->{id} } @story_list ]; } 1; -- cgit v1.2.3-24-g4f1b