Differential D20733 Diff 49429 src/applications/phortune/controller/merchant/PhortuneMerchantSubscriptionListController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phortune/controller/merchant/PhortuneMerchantSubscriptionListController.php
- This file was copied from src/applications/phortune/controller/account/PhortuneAccountOrderListController.php.
<?php | <?php | ||||
final class PhortuneAccountOrderListController | final class PhortuneMerchantSubscriptionListController | ||||
extends PhortuneAccountProfileController { | extends PhortuneMerchantProfileController { | ||||
private $subscription; | protected function shouldRequireMerchantEditCapability() { | ||||
return true; | |||||
protected function shouldRequireAccountEditCapability() { | |||||
return false; | |||||
} | } | ||||
protected function handleAccountRequest(AphrontRequest $request) { | protected function handleMerchantRequest(AphrontRequest $request) { | ||||
$viewer = $request->getViewer(); | $viewer = $request->getViewer(); | ||||
$account = $this->getAccount(); | $merchant = $this->getMerchant(); | ||||
$engine = id(new PhortuneCartSearchEngine()) | $engine = id(new PhortuneCartSearchEngine()) | ||||
->setController($this) | ->setController($this) | ||||
->setAccount($account); | ->setMerchant($merchant); | ||||
$subscription_id = $request->getURIData('subscriptionID'); | $subscription_id = $request->getURIData('subscriptionID'); | ||||
if ($subscription_id) { | if ($subscription_id) { | ||||
$subscription = id(new PhortuneSubscriptionQuery()) | $subscription = id(new PhortuneSubscriptionQuery()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->withIDs(array($subscription_id)) | ->withIDs(array($subscription_id)) | ||||
->executeOne(); | ->executeOne(); | ||||
if (!$subscription) { | if (!$subscription) { | ||||
return new Aphront404Response(); | return new Aphront404Response(); | ||||
} | } | ||||
$engine->setSubscription($subscription); | $engine->setSubscription($subscription); | ||||
$this->subscription = $subscription; | $this->subscription = $subscription; | ||||
} | } | ||||
return $engine->buildResponse(); | return $engine->buildResponse(); | ||||
} | } | ||||
protected function buildApplicationCrumbs() { | protected function buildApplicationCrumbs() { | ||||
$crumbs = parent::buildApplicationCrumbs(); | $crumbs = parent::buildApplicationCrumbs(); | ||||
$subscription = $this->subscription; | if ($this->hasMerchant()) { | ||||
if ($subscription) { | $merchant = $this->getMerchant(); | ||||
$crumbs->addTextCrumb( | |||||
$subscription->getObjectName(), | |||||
$subscription->getURI()); | |||||
} else if ($this->hasAccount()) { | |||||
$account = $this->getAccount(); | |||||
$id = $account->getID(); | |||||
$crumbs->addTextCrumb( | $crumbs->addTextCrumb( | ||||
pht('Orders'), | pht('Subscriptions'), | ||||
$account->getOrdersURI()); | $merchant->getSubscriptionsURI()); | ||||
} | } | ||||
return $crumbs; | return $crumbs; | ||||
} | } | ||||
} | } |