@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 PhortuneCartImplementation extends Phobject {
4
5 /**
6 * Load implementations for a given set of carts.
7 *
8 * Note that this method should return a map using the original keys to
9 * identify which implementation corresponds to which cart.
10 */
11 abstract public function loadImplementationsForCarts(
12 PhabricatorUser $viewer,
13 array $carts);
14
15 abstract public function getName(PhortuneCart $cart);
16 abstract public function getCancelURI(PhortuneCart $cart);
17 abstract public function getDoneURI(PhortuneCart $cart);
18
19 public function getDescription(PhortuneCart $cart) {
20 return null;
21 }
22
23 public function getDoneActionName(PhortuneCart $cart) {
24 return pht('Return to Application');
25 }
26
27 public function assertCanCancelOrder(PhortuneCart $cart) {
28 switch ($cart->getStatus()) {
29 case PhortuneCart::STATUS_PURCHASED:
30 throw new Exception(
31 pht(
32 'This order can not be cancelled because it has already been '.
33 'completed.'));
34 break;
35 }
36 }
37
38 public function assertCanRefundOrder(PhortuneCart $cart) {
39 return;
40 }
41
42 abstract public function willCreateCart(
43 PhabricatorUser $viewer,
44 PhortuneCart $cart);
45
46}