Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / fund / phortune / FundBackerCart.php
blob9cf530f23e46260189c12a910077b9d9f220d20e
1 <?php
3 final class FundBackerCart extends PhortuneCartImplementation {
5 private $initiativePHID;
6 private $initiative;
8 public function setInitiativePHID($initiative_phid) {
9 $this->initiativePHID = $initiative_phid;
10 return $this;
13 public function getInitiativePHID() {
14 return $this->initiativePHID;
17 public function setInitiative(FundInitiative $initiative) {
18 $this->initiative = $initiative;
19 return $this;
22 public function getInitiative() {
23 return $this->initiative;
26 public function getName(PhortuneCart $cart) {
27 return pht('Fund Initiative');
30 public function willCreateCart(
31 PhabricatorUser $viewer,
32 PhortuneCart $cart) {
34 $initiative = $this->getInitiative();
35 if (!$initiative) {
36 throw new PhutilInvalidStateException('setInitiative');
39 $cart->setMetadataValue('initiativePHID', $initiative->getPHID());
42 public function loadImplementationsForCarts(
43 PhabricatorUser $viewer,
44 array $carts) {
46 $phids = array();
47 foreach ($carts as $cart) {
48 $phids[] = $cart->getMetadataValue('initiativePHID');
51 $initiatives = id(new FundInitiativeQuery())
52 ->setViewer($viewer)
53 ->withPHIDs($phids)
54 ->execute();
55 $initiatives = mpull($initiatives, null, 'getPHID');
57 $objects = array();
58 foreach ($carts as $key => $cart) {
59 $initiative_phid = $cart->getMetadataValue('initiativePHID');
61 $object = id(new FundBackerCart())
62 ->setInitiativePHID($initiative_phid);
64 $initiative = idx($initiatives, $initiative_phid);
65 if ($initiative) {
66 $object->setInitiative($initiative);
69 $objects[$key] = $object;
72 return $objects;
75 public function getCancelURI(PhortuneCart $cart) {
76 return '/'.$this->getInitiative()->getMonogram();
79 public function getDoneURI(PhortuneCart $cart) {
80 return '/'.$this->getInitiative()->getMonogram();
83 public function getDoneActionName(PhortuneCart $cart) {
84 return pht('Return to Initiative');