[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/nuance/conduit/ -> NuanceCreateItemConduitAPIMethod.php (source)

   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  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1