mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
Add differential.getrawdiff to Conduit
Test Plan: Confirm the API returns a single flat result with a unified git diff. Reviewers: epriestley Reviewed By: epriestley CC: Korvin, aran, charles Differential Revision: https://secure.phabricator.com/D7199
This commit is contained in:
parent
3c34cdce5a
commit
eb548f5af7
2 changed files with 60 additions and 1 deletions
|
@ -133,6 +133,7 @@ phutil_register_library_map(array(
|
||||||
'ConduitAPI_differential_getcommitmessage_Method' => 'applications/differential/conduit/ConduitAPI_differential_getcommitmessage_Method.php',
|
'ConduitAPI_differential_getcommitmessage_Method' => 'applications/differential/conduit/ConduitAPI_differential_getcommitmessage_Method.php',
|
||||||
'ConduitAPI_differential_getcommitpaths_Method' => 'applications/differential/conduit/ConduitAPI_differential_getcommitpaths_Method.php',
|
'ConduitAPI_differential_getcommitpaths_Method' => 'applications/differential/conduit/ConduitAPI_differential_getcommitpaths_Method.php',
|
||||||
'ConduitAPI_differential_getdiff_Method' => 'applications/differential/conduit/ConduitAPI_differential_getdiff_Method.php',
|
'ConduitAPI_differential_getdiff_Method' => 'applications/differential/conduit/ConduitAPI_differential_getdiff_Method.php',
|
||||||
|
'ConduitAPI_differential_getrawdiff_Method' => 'applications/differential/conduit/ConduitAPI_differential_getrawdiff_Method.php',
|
||||||
'ConduitAPI_differential_getrevision_Method' => 'applications/differential/conduit/ConduitAPI_differential_getrevision_Method.php',
|
'ConduitAPI_differential_getrevision_Method' => 'applications/differential/conduit/ConduitAPI_differential_getrevision_Method.php',
|
||||||
'ConduitAPI_differential_getrevisioncomments_Method' => 'applications/differential/conduit/ConduitAPI_differential_getrevisioncomments_Method.php',
|
'ConduitAPI_differential_getrevisioncomments_Method' => 'applications/differential/conduit/ConduitAPI_differential_getrevisioncomments_Method.php',
|
||||||
'ConduitAPI_differential_markcommitted_Method' => 'applications/differential/conduit/ConduitAPI_differential_markcommitted_Method.php',
|
'ConduitAPI_differential_markcommitted_Method' => 'applications/differential/conduit/ConduitAPI_differential_markcommitted_Method.php',
|
||||||
|
@ -2223,6 +2224,7 @@ phutil_register_library_map(array(
|
||||||
'ConduitAPI_differential_getcommitmessage_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_differential_getcommitmessage_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_differential_getcommitpaths_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_differential_getcommitpaths_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_differential_getdiff_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_differential_getdiff_Method' => 'ConduitAPIMethod',
|
||||||
|
'ConduitAPI_differential_getrawdiff_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_differential_getrevision_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_differential_getrevision_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_differential_getrevisioncomments_Method' => 'ConduitAPI_differential_Method',
|
'ConduitAPI_differential_getrevisioncomments_Method' => 'ConduitAPI_differential_Method',
|
||||||
'ConduitAPI_differential_markcommitted_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_differential_markcommitted_Method' => 'ConduitAPIMethod',
|
||||||
|
@ -3003,7 +3005,11 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorApplicationUninstallController' => 'PhabricatorApplicationsController',
|
'PhabricatorApplicationUninstallController' => 'PhabricatorApplicationsController',
|
||||||
'PhabricatorApplicationXHProf' => 'PhabricatorApplication',
|
'PhabricatorApplicationXHProf' => 'PhabricatorApplication',
|
||||||
'PhabricatorApplicationsController' => 'PhabricatorController',
|
'PhabricatorApplicationsController' => 'PhabricatorController',
|
||||||
'PhabricatorApplicationsListController' => 'PhabricatorApplicationsController',
|
'PhabricatorApplicationsListController' =>
|
||||||
|
array(
|
||||||
|
0 => 'PhabricatorApplicationsController',
|
||||||
|
1 => 'PhabricatorApplicationSearchResultsControllerInterface',
|
||||||
|
),
|
||||||
'PhabricatorAsanaConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
'PhabricatorAsanaConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||||
'PhabricatorAuditAddCommentController' => 'PhabricatorAuditController',
|
'PhabricatorAuditAddCommentController' => 'PhabricatorAuditController',
|
||||||
'PhabricatorAuditComment' =>
|
'PhabricatorAuditComment' =>
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class ConduitAPI_differential_getrawdiff_Method
|
||||||
|
extends ConduitAPIMethod {
|
||||||
|
|
||||||
|
public function getMethodDescription() {
|
||||||
|
return pht("Retrieve a raw diff");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defineParamTypes() {
|
||||||
|
return array(
|
||||||
|
'diffID' => 'required diffID',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defineReturnType() {
|
||||||
|
return 'nonempty string';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defineErrorTypes() {
|
||||||
|
return array(
|
||||||
|
'ERR_NOT_FOUND' => pht('Diff not found.'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(ConduitAPIRequest $request) {
|
||||||
|
$diff_id = $request->getValue('diffID');
|
||||||
|
|
||||||
|
$viewer = $request->getUser();
|
||||||
|
|
||||||
|
$diff = id(new DifferentialDiffQuery())
|
||||||
|
->withIDs(array($diff_id))
|
||||||
|
->setViewer($viewer)
|
||||||
|
->executeOne();
|
||||||
|
|
||||||
|
if (!$diff) {
|
||||||
|
throw new ConduitException('ERR_NOT_FOUND');
|
||||||
|
}
|
||||||
|
|
||||||
|
$changesets = $diff->loadChangesets();
|
||||||
|
foreach ($changesets as $changeset) {
|
||||||
|
$changeset->attachHunks(
|
||||||
|
$changeset->loadHunks());
|
||||||
|
}
|
||||||
|
|
||||||
|
$renderer = new DifferentialRawDiffRenderer();
|
||||||
|
$renderer->setChangesets($changesets);
|
||||||
|
$renderer->setViewer($viewer);
|
||||||
|
$renderer->setFormat('git');
|
||||||
|
return $renderer->buildPatch();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue