@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhortunePaymentProviderConfigEditor
4 extends PhabricatorApplicationTransactionEditor {
5
6 public function getEditorApplicationClass() {
7 return PhabricatorPhortuneApplication::class;
8 }
9
10 public function getEditorObjectsDescription() {
11 return pht('Phortune Payment Providers');
12 }
13
14 public function getTransactionTypes() {
15 $types = parent::getTransactionTypes();
16
17 $types[] = PhortunePaymentProviderConfigTransaction::TYPE_CREATE;
18 $types[] = PhortunePaymentProviderConfigTransaction::TYPE_PROPERTY;
19 $types[] = PhortunePaymentProviderConfigTransaction::TYPE_ENABLE;
20
21 return $types;
22 }
23
24 protected function getCustomTransactionOldValue(
25 PhabricatorLiskDAO $object,
26 PhabricatorApplicationTransaction $xaction) {
27 switch ($xaction->getTransactionType()) {
28 case PhortunePaymentProviderConfigTransaction::TYPE_CREATE:
29 return null;
30 case PhortunePaymentProviderConfigTransaction::TYPE_ENABLE:
31 return (int)$object->getIsEnabled();
32 case PhortunePaymentProviderConfigTransaction::TYPE_PROPERTY:
33 $property_key = $xaction->getMetadataValue(
34 PhortunePaymentProviderConfigTransaction::PROPERTY_KEY);
35 return $object->getMetadataValue($property_key);
36 }
37
38 return parent::getCustomTransactionOldValue($object, $xaction);
39 }
40
41 protected function getCustomTransactionNewValue(
42 PhabricatorLiskDAO $object,
43 PhabricatorApplicationTransaction $xaction) {
44
45 switch ($xaction->getTransactionType()) {
46 case PhortunePaymentProviderConfigTransaction::TYPE_CREATE:
47 case PhortunePaymentProviderConfigTransaction::TYPE_PROPERTY:
48 return $xaction->getNewValue();
49 case PhortunePaymentProviderConfigTransaction::TYPE_ENABLE:
50 return (int)$xaction->getNewValue();
51 }
52
53 return parent::getCustomTransactionNewValue($object, $xaction);
54 }
55
56 protected function applyCustomInternalTransaction(
57 PhabricatorLiskDAO $object,
58 PhabricatorApplicationTransaction $xaction) {
59
60 switch ($xaction->getTransactionType()) {
61 case PhortunePaymentProviderConfigTransaction::TYPE_CREATE:
62 return;
63 case PhortunePaymentProviderConfigTransaction::TYPE_PROPERTY:
64 $property_key = $xaction->getMetadataValue(
65 PhortunePaymentProviderConfigTransaction::PROPERTY_KEY);
66 $object->setMetadataValue($property_key, $xaction->getNewValue());
67 return;
68 case PhortunePaymentProviderConfigTransaction::TYPE_ENABLE:
69 return $object->setIsEnabled((int)$xaction->getNewValue());
70 }
71
72 return parent::applyCustomInternalTransaction($object, $xaction);
73 }
74
75 protected function applyCustomExternalTransaction(
76 PhabricatorLiskDAO $object,
77 PhabricatorApplicationTransaction $xaction) {
78
79 switch ($xaction->getTransactionType()) {
80 case PhortunePaymentProviderConfigTransaction::TYPE_CREATE:
81 case PhortunePaymentProviderConfigTransaction::TYPE_PROPERTY:
82 case PhortunePaymentProviderConfigTransaction::TYPE_ENABLE:
83 return;
84 }
85
86 return parent::applyCustomExternalTransaction($object, $xaction);
87 }
88
89}