Page MenuHomePhabricator

D13066.diff
No OneTemporary

D13066.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -371,6 +371,7 @@
'DifferentialGetRawDiffConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetRawDiffConduitAPIMethod.php',
'DifferentialGetRevisionCommentsConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetRevisionCommentsConduitAPIMethod.php',
'DifferentialGetRevisionConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetRevisionConduitAPIMethod.php',
+ 'DifferentialGetRevisionTransactionsConduitAPIMethod' => 'applications/differential/conduit/DifferentialGetRevisionTransactionsConduitAPIMethod.php',
'DifferentialGetWorkingCopy' => 'applications/differential/DifferentialGetWorkingCopy.php',
'DifferentialGitHubLandingStrategy' => 'applications/differential/landing/DifferentialGitHubLandingStrategy.php',
'DifferentialGitSVNIDField' => 'applications/differential/customfield/DifferentialGitSVNIDField.php',
@@ -3614,6 +3615,7 @@
'DifferentialGetRawDiffConduitAPIMethod' => 'DifferentialConduitAPIMethod',
'DifferentialGetRevisionCommentsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
'DifferentialGetRevisionConduitAPIMethod' => 'DifferentialConduitAPIMethod',
+ 'DifferentialGetRevisionTransactionsConduitAPIMethod' => 'DifferentialConduitAPIMethod',
'DifferentialGitHubLandingStrategy' => 'DifferentialLandingStrategy',
'DifferentialGitSVNIDField' => 'DifferentialCustomField',
'DifferentialHiddenComment' => 'DifferentialDAO',
diff --git a/src/applications/differential/conduit/DifferentialGetRevisionTransactionsConduitAPIMethod.php b/src/applications/differential/conduit/DifferentialGetRevisionTransactionsConduitAPIMethod.php
new file mode 100644
--- /dev/null
+++ b/src/applications/differential/conduit/DifferentialGetRevisionTransactionsConduitAPIMethod.php
@@ -0,0 +1,75 @@
+<?php
+
+final class DifferentialGetRevisionTransactionsConduitAPIMethod
+ extends DifferentialConduitAPIMethod {
+
+ public function getAPIMethodName() {
+ return 'differential.getrevisiontransactions';
+ }
+
+ public function getMethodDescription() {
+ return pht('Retrieve Differential revision transactions.');
+ }
+
+ protected function defineParamTypes() {
+ return array(
+ 'ids' => 'required list<int>',
+ );
+ }
+
+ protected function defineReturnType() {
+ return 'nonempty list<dict<string, wild>>';
+ }
+
+ protected function execute(ConduitAPIRequest $request) {
+ $results = array();
+ $revision_ids = $request->getValue('ids');
+
+ if (!$revision_ids) {
+ return $results;
+ }
+
+ $revisions = id(new DifferentialRevisionQuery())
+ ->setViewer($request->getUser())
+ ->withIDs($revision_ids)
+ ->execute();
+ $revisions = mpull($revisions, null, 'getPHID');
+
+ $transactions = array();
+ if ($revisions) {
+ $transactions = id(new DifferentialTransactionQuery())
+ ->setViewer($request->getUser())
+ ->withObjectPHIDs(mpull($revisions, 'getPHID'))
+ ->needComments(true)
+ ->execute();
+ }
+
+ foreach ($transactions as $transaction) {
+ $revision_phid = $transaction->getObjectPHID();
+ if (empty($revisions[$revision_phid])) {
+ continue;
+ }
+
+ $revision_id = $revisions[$revision_phid]->getID();
+
+ $comments = null;
+ if ($transaction->hasComment()) {
+ $comments = $transaction->getComment()->getContent();
+ }
+
+ $results[$revision_id][] = array(
+ 'revisionID' => $revision_id,
+ 'transactionPHID' => $transaction->getPHID(),
+ 'transactionType' => $transaction->getTransactionType(),
+ 'oldValue' => $transaction->getOldValue(),
+ 'newValue' => $transaction->getNewValue(),
+ 'comments' => $comments,
+ 'authorPHID' => $transaction->getAuthorPHID(),
+ 'dateCreated' => $transaction->getDateCreated(),
+ );
+ }
+
+ return $results;
+ }
+
+}
diff --git a/src/applications/maniphest/conduit/ManiphestGetTaskTransactionsConduitAPIMethod.php b/src/applications/maniphest/conduit/ManiphestGetTaskTransactionsConduitAPIMethod.php
--- a/src/applications/maniphest/conduit/ManiphestGetTaskTransactionsConduitAPIMethod.php
+++ b/src/applications/maniphest/conduit/ManiphestGetTaskTransactionsConduitAPIMethod.php
@@ -58,13 +58,13 @@
}
$results[$task_id][] = array(
- 'taskID' => $task_id,
+ 'taskID' => $task_id,
'transactionPHID' => $transaction->getPHID(),
- 'transactionType' => $transaction->getTransactionType(),
- 'oldValue' => $transaction->getOldValue(),
- 'newValue' => $transaction->getNewValue(),
- 'comments' => $comments,
- 'authorPHID' => $transaction->getAuthorPHID(),
+ 'transactionType' => $transaction->getTransactionType(),
+ 'oldValue' => $transaction->getOldValue(),
+ 'newValue' => $transaction->getNewValue(),
+ 'comments' => $comments,
+ 'authorPHID' => $transaction->getAuthorPHID(),
'dateCreated' => $transaction->getDateCreated(),
);
}

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 2, 5:28 AM (14 h, 28 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7083776
Default Alt Text
D13066.diff (5 KB)

Event Timeline