Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/differential/conduit/ConduitAPI_differential_getdiff_Method.php b/src/applications/differential/conduit/ConduitAPI_differential_getdiff_Method.php
index e2efa11310..2c864a43ab 100644
--- a/src/applications/differential/conduit/ConduitAPI_differential_getdiff_Method.php
+++ b/src/applications/differential/conduit/ConduitAPI_differential_getdiff_Method.php
@@ -1,75 +1,80 @@
<?php
/**
* @group conduit
*/
final class ConduitAPI_differential_getdiff_Method
extends ConduitAPIMethod {
public function getMethodStatus() {
return self::METHOD_STATUS_DEPRECATED;
}
public function getMethodStatusDescription() {
return pht(
'This method has been deprecated in favor of differential.querydiffs.');
}
public function getMethodDescription() {
return pht('Load the content of a diff from Differential by revision id '.
'or diff id.');
}
public function defineParamTypes() {
return array(
'revision_id' => 'optional id',
'diff_id' => 'optional id',
);
}
public function defineReturnType() {
return 'nonempty dict';
}
public function defineErrorTypes() {
return array(
'ERR_BAD_DIFF' => 'No such diff exists.',
);
}
public function shouldRequireAuthentication() {
return !PhabricatorEnv::getEnvConfig('differential.anonymous-access');
}
protected function execute(ConduitAPIRequest $request) {
- $diff = null;
- $revision_ids = array();
- $diff_ids = array();
+ $diff_id = $request->getValue('diff_id');
+ // If we have a revision ID, we need the most recent diff. Figure that out
+ // without loading all the attached data.
$revision_id = $request->getValue('revision_id');
if ($revision_id) {
- $revision_ids = array($revision_id);
+ $diffs = id(new DifferentialDiffQuery())
+ ->setViewer($request->getUser())
+ ->withRevisionIDs(array($revision_id))
+ ->execute();
+ if ($diffs) {
+ $diff_id = head($diffs)->getID();
+ } else {
+ throw new ConduitException('ERR_BAD_DIFF');
+ }
}
- $diff_id = $request->getValue('diff_id');
+
+ $diff = null;
if ($diff_id) {
- $diff_ids = array($diff_id);
- }
- if ($diff_ids || $revision_ids) {
$diff = id(new DifferentialDiffQuery())
->setViewer($request->getUser())
- ->withIDs($diff_ids)
- ->withRevisionIDs($revision_ids)
+ ->withIDs(array($diff_id))
->needChangesets(true)
->needArcanistProjects(true)
->executeOne();
}
if (!$diff) {
throw new ConduitException('ERR_BAD_DIFF');
}
return $diff->getDiffDict();
}
}
diff --git a/src/applications/differential/conduit/ConduitAPI_differential_querydiffs_Method.php b/src/applications/differential/conduit/ConduitAPI_differential_querydiffs_Method.php
index 991d7c09a6..25f233e947 100644
--- a/src/applications/differential/conduit/ConduitAPI_differential_querydiffs_Method.php
+++ b/src/applications/differential/conduit/ConduitAPI_differential_querydiffs_Method.php
@@ -1,45 +1,45 @@
<?php
/**
* @group conduit
*/
final class ConduitAPI_differential_querydiffs_Method
extends ConduitAPIMethod {
public function getMethodDescription() {
return pht('Query differential diffs which match certain criteria.');
}
public function defineParamTypes() {
return array(
'ids' => 'optional list<uint>',
- 'revison_ids' => 'optional list<uint>',
+ 'revisonIDs' => 'optional list<uint>',
);
}
public function defineErrorTypes() {
return array();
}
public function defineReturnType() {
return 'list<dict>';
}
protected function execute(ConduitAPIRequest $request) {
$ids = $request->getValue('ids', array());
- $revision_ids = $request->getValue('revision_ids', array());
+ $revision_ids = $request->getValue('revisionIDs', array());
$diffs = array();
$diff_dicts = array();
if ($ids || $revision_ids) {
$diffs = id(new DifferentialDiffQuery())
->setViewer($request->getUser())
->withIDs($ids)
->withRevisionIDs($revision_ids)
->needChangesets(true)
->needArcanistProjects(true)
->execute();
}
return mpull($diffs, 'getDiffDict', 'getID');
}
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jul 29, 10:05 AM (3 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
188480
Default Alt Text
(4 KB)

Event Timeline