@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
3abstract class PhortuneController extends PhabricatorController {
4
5 private function loadEnabledProvidersForMerchant(PhortuneMerchant $merchant) {
6 $viewer = $this->getRequest()->getUser();
7
8 $provider_configs = id(new PhortunePaymentProviderConfigQuery())
9 ->setViewer($viewer)
10 ->withMerchantPHIDs(array($merchant->getPHID()))
11 ->execute();
12 $providers = mpull($provider_configs, 'buildProvider', 'getID');
13
14 foreach ($providers as $key => $provider) {
15 if (!$provider->isEnabled()) {
16 unset($providers[$key]);
17 }
18 }
19
20 return $providers;
21 }
22
23 protected function loadCreatePaymentMethodProvidersForMerchant(
24 PhortuneMerchant $merchant) {
25
26 $providers = $this->loadEnabledProvidersForMerchant($merchant);
27 foreach ($providers as $key => $provider) {
28 if (!$provider->canCreatePaymentMethods()) {
29 unset($providers[$key]);
30 continue;
31 }
32 }
33
34 return $providers;
35 }
36
37 protected function loadOneTimePaymentProvidersForMerchant(
38 PhortuneMerchant $merchant) {
39
40 $providers = $this->loadEnabledProvidersForMerchant($merchant);
41 foreach ($providers as $key => $provider) {
42 if (!$provider->canProcessOneTimePayments()) {
43 unset($providers[$key]);
44 continue;
45 }
46 }
47
48 return $providers;
49 }
50
51}