]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Revert "Bug 1422329 - The phabricator conduit API method feed.query_id return data...
authorDylan William Hardison <dylan@hardison.net>
Tue, 5 Dec 2017 14:16:03 +0000 (09:16 -0500)
committerDylan William Hardison <dylan@hardison.net>
Tue, 5 Dec 2017 14:17:21 +0000 (09:17 -0500)
This reverts commit 357528ba856fd85aee5967e5d7d8f4426bc8d5b6.

extensions/PhabBugz/lib/Feed.pm
extensions/PhabBugz/lib/Revision.pm
extensions/PhabBugz/lib/Util.pm

index b2b681bbdd3343afd949fe6a1eaf6d86b5ccf093..d178f249b158c94ca23412734df370b24ee122e7 100644 (file)
@@ -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;
index f3a56a65611906c3884bd61fb8bb6d65e1f380ae..29d665009f7e3db6764e92ac859e64b7f9c204a1 100644 (file)
@@ -30,11 +30,7 @@ my $SearchResult = Dict[
         authorPHID        => Str,
         dateCreated       => Int,
         dateModified      => Int,
-        diffPHID          => Str,
         policy            => Dict[ view => Str, edit => Str ],
-        repositoryPHID    => Maybe[Str],
-        status            => HashRef,
-        summary           => Str,
         "bugzilla.bug-id" => Int,
     ],
     attachments => Dict[
index 1f2b21d552f584930114fe396a6f3825b295af6f..a00e2055168d77d337b5f27bf156ea0ff1d84cc5 100644 (file)
@@ -327,7 +327,7 @@ sub get_members_by_bmo_id {
     my $result = get_phab_bmo_ids({ ids => [ map { $_->id } @$users ] });
 
     my @phab_ids;
-    foreach my $user (@$result) {
+    foreach my $user (@{ $result->{result} }) {
         push(@phab_ids, $user->{phid})
           if ($user->{phid} && $user->{phid} =~ /^PHID-USER/);
     }
@@ -341,7 +341,7 @@ sub get_members_by_phid {
     my $result = get_phab_bmo_ids({ phids => $phids });
 
     my @bmo_ids;
-    foreach my $user (@$result) {
+    foreach my $user (@{ $result->{result} }) {
         push(@bmo_ids, $user->{id})
           if ($user->{phid} && $user->{phid} =~ /^PHID-USER/);
     }