File tree Expand file tree Collapse file tree 3 files changed +54
-0
lines changed
moz-extensions/src/reviewhelper/controller Expand file tree Collapse file tree 3 files changed +54
-0
lines changed Original file line number Diff line number Diff line change 55
66abstract 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 *
Original file line number Diff line number Diff 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 );
Original file line number Diff line number Diff 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 );
You can’t perform that action at this time.
0 commit comments