Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / phortune / cart / PhortuneSubscriptionCart.php
blobff71106932b80a98d5e3555a8518ab1dba24c40c
1 <?php
3 final class PhortuneSubscriptionCart
4 extends PhortuneCartImplementation {
6 private $subscriptionPHID;
7 private $subscription;
9 public function setSubscriptionPHID($subscription_phid) {
10 $this->subscriptionPHID = $subscription_phid;
11 return $this;
14 public function getSubscriptionPHID() {
15 return $this->subscriptionPHID;
18 public function setSubscription(PhortuneSubscription $subscription) {
19 $this->subscription = $subscription;
20 return $this;
23 public function getSubscription() {
24 return $this->subscription;
27 public function getName(PhortuneCart $cart) {
28 return $this->getSubscription()->getCartName($cart);
31 public function willCreateCart(
32 PhabricatorUser $viewer,
33 PhortuneCart $cart) {
35 $subscription = $this->getSubscription();
36 if (!$subscription) {
37 throw new PhutilInvalidStateException('setSubscription');
40 $cart->setMetadataValue('subscriptionPHID', $subscription->getPHID());
43 public function loadImplementationsForCarts(
44 PhabricatorUser $viewer,
45 array $carts) {
47 $phids = array();
48 foreach ($carts as $cart) {
49 $phids[] = $cart->getMetadataValue('subscriptionPHID');
52 $subscriptions = id(new PhortuneSubscriptionQuery())
53 ->setViewer($viewer)
54 ->withPHIDs($phids)
55 ->execute();
56 $subscriptions = mpull($subscriptions, null, 'getPHID');
58 $objects = array();
59 foreach ($carts as $key => $cart) {
60 $subscription_phid = $cart->getMetadataValue('subscriptionPHID');
61 $subscription = idx($subscriptions, $subscription_phid);
62 if (!$subscription) {
63 continue;
66 $object = id(new PhortuneSubscriptionCart())
67 ->setSubscriptionPHID($subscription_phid)
68 ->setSubscription($subscription);
70 $objects[$key] = $object;
73 return $objects;
76 public function getCancelURI(PhortuneCart $cart) {
77 return $this->getSubscription()->getURI();
80 public function getDoneURI(PhortuneCart $cart) {
81 return $this->getSubscription()->getURI();
84 public function getDoneActionName(PhortuneCart $cart) {
85 return pht('Return to Subscription');