[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class DiffusionPathValidateController extends DiffusionController { 4 5 public function willProcessRequest(array $data) { 6 // Don't build a DiffusionRequest. 7 } 8 9 public function processRequest() { 10 $request = $this->getRequest(); 11 12 $repository_phid = $request->getStr('repositoryPHID'); 13 $repository = id(new PhabricatorRepositoryQuery()) 14 ->setViewer($request->getUser()) 15 ->withPHIDs(array($repository_phid)) 16 ->executeOne(); 17 if (!$repository) { 18 return new Aphront400Response(); 19 } 20 21 $path = $request->getStr('path'); 22 $path = ltrim($path, '/'); 23 24 $drequest = DiffusionRequest::newFromDictionary( 25 array( 26 'user' => $request->getUser(), 27 'repository' => $repository, 28 'path' => $path, 29 )); 30 $this->setDiffusionRequest($drequest); 31 32 $browse_results = DiffusionBrowseResultSet::newFromConduit( 33 $this->callConduitWithDiffusionRequest( 34 'diffusion.browsequery', 35 array( 36 'path' => $drequest->getPath(), 37 'commit' => $drequest->getCommit(), 38 'needValidityOnly' => true, 39 ))); 40 $valid = $browse_results->isValidResults(); 41 42 if (!$valid) { 43 switch ($browse_results->getReasonForEmptyResultSet()) { 44 case DiffusionBrowseResultSet::REASON_IS_FILE: 45 $valid = true; 46 break; 47 case DiffusionBrowseResultSet::REASON_IS_EMPTY: 48 $valid = true; 49 break; 50 } 51 } 52 53 $output = array( 54 'valid' => (bool)$valid, 55 ); 56 57 if (!$valid) { 58 $branch = $drequest->getBranch(); 59 if ($branch) { 60 $message = pht('Not found in %s', $branch); 61 } else { 62 $message = pht('Not found at HEAD'); 63 } 64 } else { 65 $message = pht('OK'); 66 } 67 68 $output['message'] = $message; 69 70 return id(new AphrontAjaxResponse())->setContent($output); 71 } 72 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |