Differential D16458 Diff 39598 src/applications/diffusion/conduit/DiffusionFileContentQueryConduitAPIMethod.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/conduit/DiffusionFileContentQueryConduitAPIMethod.php
| Show All 13 Lines | final class DiffusionFileContentQueryConduitAPIMethod | ||||
| protected function defineReturnType() { | protected function defineReturnType() { | ||||
| return 'array'; | return 'array'; | ||||
| } | } | ||||
| protected function defineCustomParamTypes() { | protected function defineCustomParamTypes() { | ||||
| return array( | return array( | ||||
| 'path' => 'required string', | 'path' => 'required string', | ||||
| 'commit' => 'required string', | 'commit' => 'required string', | ||||
| 'timeout' => 'optional int', | ) + DiffusionFileFutureQuery::getConduitParameters(); | ||||
| 'byteLimit' => 'optional int', | |||||
| ); | |||||
| } | } | ||||
| protected function getResult(ConduitAPIRequest $request) { | protected function getResult(ConduitAPIRequest $request) { | ||||
| $drequest = $this->getDiffusionRequest(); | $drequest = $this->getDiffusionRequest(); | ||||
| $file_query = DiffusionFileContentQuery::newFromDiffusionRequest($drequest); | return DiffusionFileContentQuery::newFromDiffusionRequest($drequest) | ||||
| ->respondToConduitRequest($request); | |||||
| $timeout = $request->getValue('timeout'); | |||||
| if ($timeout) { | |||||
| $file_query->setTimeout($timeout); | |||||
| } | |||||
| $byte_limit = $request->getValue('byteLimit'); | |||||
| if ($byte_limit) { | |||||
| $file_query->setByteLimit($byte_limit); | |||||
| } | |||||
| $file = $file_query->execute(); | |||||
| $too_slow = (bool)$file_query->getExceededTimeLimit(); | |||||
| $too_huge = (bool)$file_query->getExceededByteLimit(); | |||||
| $file_phid = null; | |||||
| if (!$too_slow && !$too_huge) { | |||||
| $repository = $drequest->getRepository(); | |||||
| $repository_phid = $repository->getPHID(); | |||||
| $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); | |||||
| $file->attachToObject($repository_phid); | |||||
| unset($unguarded); | |||||
| $file_phid = $file->getPHID(); | |||||
| } | |||||
| return array( | |||||
| 'tooSlow' => $too_slow, | |||||
| 'tooHuge' => $too_huge, | |||||
| 'filePHID' => $file_phid, | |||||
| ); | |||||
| } | } | ||||
| } | } | ||||