summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/PhabBugz/lib/Feed.pm26
-rw-r--r--extensions/PhabBugz/lib/Revision.pm4
-rw-r--r--extensions/PhabBugz/lib/Util.pm4
3 files changed, 21 insertions, 13 deletions
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;
diff --git a/extensions/PhabBugz/lib/Revision.pm b/extensions/PhabBugz/lib/Revision.pm
index f3a56a656..29d665009 100644
--- a/extensions/PhabBugz/lib/Revision.pm
+++ b/extensions/PhabBugz/lib/Revision.pm
@@ -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[
diff --git a/extensions/PhabBugz/lib/Util.pm b/extensions/PhabBugz/lib/Util.pm
index 1f2b21d55..a00e20551 100644
--- a/extensions/PhabBugz/lib/Util.pm
+++ b/extensions/PhabBugz/lib/Util.pm
@@ -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/);
}