mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-14 02:42:40 +01:00
Transactions - finish making built-in transaction types implementation optional
Summary: Fixes T6403. Remaining built-ins were already built-in effectively so this is a small re-factor plus some docs. I probably wouldn't have written anything if not for the TODO so please feel free to tell me to write something else or what have you. Test Plan: NA since this didn't actually change anything. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T6403 Differential Revision: https://secure.phabricator.com/D12937
This commit is contained in:
parent
9de39c12a2
commit
4787069e96
1 changed files with 18 additions and 11 deletions
|
@ -385,12 +385,11 @@ abstract class PhabricatorApplicationTransactionEditor
|
||||||
PhabricatorApplicationTransaction $xaction) {
|
PhabricatorApplicationTransaction $xaction) {
|
||||||
|
|
||||||
switch ($xaction->getTransactionType()) {
|
switch ($xaction->getTransactionType()) {
|
||||||
case PhabricatorTransactions::TYPE_BUILDABLE:
|
|
||||||
case PhabricatorTransactions::TYPE_TOKEN:
|
|
||||||
return;
|
|
||||||
case PhabricatorTransactions::TYPE_CUSTOMFIELD:
|
case PhabricatorTransactions::TYPE_CUSTOMFIELD:
|
||||||
$field = $this->getCustomFieldForTransaction($object, $xaction);
|
$field = $this->getCustomFieldForTransaction($object, $xaction);
|
||||||
return $field->applyApplicationTransactionInternalEffects($xaction);
|
return $field->applyApplicationTransactionInternalEffects($xaction);
|
||||||
|
case PhabricatorTransactions::TYPE_BUILDABLE:
|
||||||
|
case PhabricatorTransactions::TYPE_TOKEN:
|
||||||
case PhabricatorTransactions::TYPE_VIEW_POLICY:
|
case PhabricatorTransactions::TYPE_VIEW_POLICY:
|
||||||
case PhabricatorTransactions::TYPE_EDIT_POLICY:
|
case PhabricatorTransactions::TYPE_EDIT_POLICY:
|
||||||
case PhabricatorTransactions::TYPE_JOIN_POLICY:
|
case PhabricatorTransactions::TYPE_JOIN_POLICY:
|
||||||
|
@ -408,9 +407,6 @@ abstract class PhabricatorApplicationTransactionEditor
|
||||||
PhabricatorLiskDAO $object,
|
PhabricatorLiskDAO $object,
|
||||||
PhabricatorApplicationTransaction $xaction) {
|
PhabricatorApplicationTransaction $xaction) {
|
||||||
switch ($xaction->getTransactionType()) {
|
switch ($xaction->getTransactionType()) {
|
||||||
case PhabricatorTransactions::TYPE_BUILDABLE:
|
|
||||||
case PhabricatorTransactions::TYPE_TOKEN:
|
|
||||||
return;
|
|
||||||
case PhabricatorTransactions::TYPE_SUBSCRIBERS:
|
case PhabricatorTransactions::TYPE_SUBSCRIBERS:
|
||||||
$subeditor = id(new PhabricatorSubscriptionsEditor())
|
$subeditor = id(new PhabricatorSubscriptionsEditor())
|
||||||
->setObject($object)
|
->setObject($object)
|
||||||
|
@ -442,6 +438,8 @@ abstract class PhabricatorApplicationTransactionEditor
|
||||||
$field = $this->getCustomFieldForTransaction($object, $xaction);
|
$field = $this->getCustomFieldForTransaction($object, $xaction);
|
||||||
return $field->applyApplicationTransactionExternalEffects($xaction);
|
return $field->applyApplicationTransactionExternalEffects($xaction);
|
||||||
case PhabricatorTransactions::TYPE_EDGE:
|
case PhabricatorTransactions::TYPE_EDGE:
|
||||||
|
case PhabricatorTransactions::TYPE_BUILDABLE:
|
||||||
|
case PhabricatorTransactions::TYPE_TOKEN:
|
||||||
case PhabricatorTransactions::TYPE_VIEW_POLICY:
|
case PhabricatorTransactions::TYPE_VIEW_POLICY:
|
||||||
case PhabricatorTransactions::TYPE_EDIT_POLICY:
|
case PhabricatorTransactions::TYPE_EDIT_POLICY:
|
||||||
case PhabricatorTransactions::TYPE_JOIN_POLICY:
|
case PhabricatorTransactions::TYPE_JOIN_POLICY:
|
||||||
|
@ -471,11 +469,17 @@ abstract class PhabricatorApplicationTransactionEditor
|
||||||
"implementation!");
|
"implementation!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Write proper documentation for these hooks. These are like the
|
/**
|
||||||
// "applyCustom" hooks, except that implementation is optional, so you do
|
* @{class:PhabricatorTransactions} provides many built-in transactions
|
||||||
// not need to handle all of the builtin transaction types. See T6403. These
|
* which should not require much - if any - code in specific applications.
|
||||||
// are not completely implemented.
|
*
|
||||||
|
* This method is a hook for the exceedingly-rare cases where you may need
|
||||||
|
* to do **additional** work for built-in transactions. Developers should
|
||||||
|
* extend this method, making sure to return the parent implementation
|
||||||
|
* regardless of handling any transactions.
|
||||||
|
*
|
||||||
|
* See also @{method:applyBuiltinExternalTransaction}.
|
||||||
|
*/
|
||||||
protected function applyBuiltinInternalTransaction(
|
protected function applyBuiltinInternalTransaction(
|
||||||
PhabricatorLiskDAO $object,
|
PhabricatorLiskDAO $object,
|
||||||
PhabricatorApplicationTransaction $xaction) {
|
PhabricatorApplicationTransaction $xaction) {
|
||||||
|
@ -493,6 +497,9 @@ abstract class PhabricatorApplicationTransactionEditor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* See @{method::applyBuiltinInternalTransaction}.
|
||||||
|
*/
|
||||||
protected function applyBuiltinExternalTransaction(
|
protected function applyBuiltinExternalTransaction(
|
||||||
PhabricatorLiskDAO $object,
|
PhabricatorLiskDAO $object,
|
||||||
PhabricatorApplicationTransaction $xaction) {
|
PhabricatorApplicationTransaction $xaction) {
|
||||||
|
|
Loading…
Reference in a new issue