[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class NuanceCreateItemConduitAPIMethod extends NuanceConduitAPIMethod { 4 5 public function getAPIMethodName() { 6 return 'nuance.createitem'; 7 } 8 9 public function getMethodDescription() { 10 return pht('Create a new item.'); 11 } 12 13 public function defineParamTypes() { 14 return array( 15 'requestorPHID' => 'required string', 16 'sourcePHID' => 'required string', 17 'ownerPHID' => 'optional string', 18 ); 19 } 20 21 public function defineReturnType() { 22 return 'nonempty dict'; 23 } 24 25 public function defineErrorTypes() { 26 return array( 27 'ERR-NO-REQUESTOR-PHID' => pht('Items must have a requestor.'), 28 'ERR-NO-SOURCE-PHID' => pht('Items must have a source.'), 29 ); 30 } 31 32 protected function execute(ConduitAPIRequest $request) { 33 $source_phid = $request->getValue('sourcePHID'); 34 $owner_phid = $request->getValue('ownerPHID'); 35 $requestor_phid = $request->getValue('requestorPHID'); 36 37 $user = $request->getUser(); 38 39 $item = NuanceItem::initializeNewItem($user); 40 $xactions = array(); 41 42 if ($source_phid) { 43 $xactions[] = id(new NuanceItemTransaction()) 44 ->setTransactionType(NuanceItemTransaction::TYPE_SOURCE) 45 ->setNewValue($source_phid); 46 } else { 47 throw new ConduitException('ERR-NO-SOURCE-PHID'); 48 } 49 50 if ($owner_phid) { 51 $xactions[] = id(new NuanceItemTransaction()) 52 ->setTransactionType(NuanceItemTransaction::TYPE_OWNER) 53 ->setNewValue($owner_phid); 54 } 55 56 if ($requestor_phid) { 57 $xactions[] = id(new NuanceItemTransaction()) 58 ->setTransactionType(NuanceItemTransaction::TYPE_REQUESTOR) 59 ->setNewValue($requestor_phid); 60 } else { 61 throw new ConduitException('ERR-NO-REQUESTOR-PHID'); 62 } 63 64 $source = PhabricatorContentSource::newFromConduitRequest($request); 65 $editor = id(new NuanceItemEditor()) 66 ->setActor($user) 67 ->setContentSource($source) 68 ->applyTransactions($item, $xactions); 69 70 return $item->toDictionary(); 71 } 72 73 }
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 |