Path: blob/master/src/applications/packages/xaction/package/PhabricatorPackagesPackageKeyTransaction.php
12242 views
<?php12final class PhabricatorPackagesPackageKeyTransaction3extends PhabricatorPackagesPackageTransactionType {45const TRANSACTIONTYPE = 'packages.package.key';67public function generateOldValue($object) {8return $object->getPackageKey();9}1011public function applyInternalEffects($object, $value) {12$object->setPackageKey($value);13}1415public function validateTransactions($object, array $xactions) {16$errors = array();1718if ($this->isEmptyTextTransaction($object->getName(), $xactions)) {19$errors[] = $this->newRequiredError(20pht(21'Each package provided by a publisher must have a '.22'unique package key.'));23return $errors;24}2526if (!$this->isNewObject()) {27foreach ($xactions as $xaction) {28$errors[] = $this->newInvalidError(29pht('Once a package is created, its key can not be changed.'),30$xaction);31}32}3334foreach ($xactions as $xaction) {35$value = $xaction->getNewValue();36try {37PhabricatorPackagesPackage::assertValidPackageKey($value);38} catch (Exception $ex) {39$errors[] = $this->newInvalidError($ex->getMessage(), $xaction);40}41}4243return $errors;44}4546}474849