Skip to content

Commit dda84ac

Browse files
Bug 2016831 - Include acting_capacity in Review Helper requests (#73)
1 parent a86569c commit dda84ac

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

moz-extensions/src/reviewhelper/controller/ReviewHelperController.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@
55

66
abstract class ReviewHelperController extends PhabricatorController {
77

8+
protected function determineActingCapacity(
9+
PhabricatorUser $viewer,
10+
DifferentialRevision $revision
11+
) {
12+
if ($viewer->getPHID() === $revision->getAuthorPHID()) {
13+
return 'author';
14+
}
15+
16+
foreach ($revision->getReviewers() as $reviewer) {
17+
if ($reviewer->getReviewerPHID() === $viewer->getPHID()) {
18+
return 'reviewer:' . $reviewer->getReviewerStatus();
19+
}
20+
}
21+
22+
$subscribers = id(new PhabricatorSubscribersQuery())
23+
->withObjectPHIDs(array($revision->getPHID()))
24+
->withSubscriberPHIDs(array($viewer->getPHID()))
25+
->execute();
26+
27+
if (!empty($subscribers[$revision->getPHID()])) {
28+
return 'participant';
29+
}
30+
31+
return null;
32+
}
33+
834
/**
935
* Make a request to the Review Helper service.
1036
*

moz-extensions/src/reviewhelper/controller/ReviewHelperFeedbackController.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,35 @@ private function submitFeedback(
5151
$comment_id,
5252
$feedback_type
5353
) {
54+
$comment = id(new DifferentialDiffInlineCommentQuery())
55+
->setViewer($viewer)
56+
->withIDs(array($comment_id))
57+
->executeOne();
58+
59+
if (!$comment) {
60+
throw new ReviewHelperServiceException(
61+
pht('Comment not found or you do not have permission to view it.')
62+
);
63+
}
64+
$revision = id(new DifferentialRevisionQuery())
65+
->setViewer($viewer)
66+
->withPHIDs(array($comment->getRevisionPHID()))
67+
->needReviewers(true)
68+
->executeOne();
69+
70+
if (!$revision) {
71+
throw new ReviewHelperServiceException(
72+
pht('Unable to load revision for this comment.')
73+
);
74+
}
75+
$acting_capacity = $this->determineActingCapacity($viewer, $revision);
76+
5477
$payload = array(
5578
'comment_id' => $comment_id,
5679
'feedback_type' => $feedback_type,
5780
'user_id' => $viewer->getID(),
5881
'user_name' => $viewer->getUsername(),
82+
'acting_capacity' => $acting_capacity,
5983
);
6084

6185
return $this->makeServiceRequest('/feedback', $payload);

moz-extensions/src/reviewhelper/controller/ReviewHelperRequestController.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public function handleRequest(AphrontRequest $request) {
1313
->setViewer($viewer)
1414
->withIDs(array($revision_id))
1515
->needDiffIDs(true)
16+
->needReviewers(true)
1617
->executeOne();
1718

1819
if (!$revision) {
@@ -65,11 +66,14 @@ private function requestReview(
6566
PhabricatorUser $viewer,
6667
DifferentialRevision $revision
6768
) {
69+
$acting_capacity = $this->determineActingCapacity($viewer, $revision);
70+
6871
$payload = array(
6972
'revision_id' => $revision->getID(),
7073
'diff_id' => max($revision->getDiffIDs()),
7174
'user_id' => $viewer->getID(),
7275
'user_name' => $viewer->getUsername(),
76+
'acting_capacity' => $acting_capacity,
7377
);
7478

7579
$data = $this->makeServiceRequest('/request', $payload);

0 commit comments

Comments
 (0)