public function fetch($query, $ids)
 {
     $criteria = [];
     foreach ($query as $term) {
         $criteria[$term->name] = $term->toparam();
     }
     $criteria["ids"] = SubscriptionSearch::ids()->in($ids)->toparam();
     $path = $this->_config->merchantPath() . '/subscriptions/advanced_search';
     $response = $this->_http->post($path, ['search' => $criteria]);
     return Util::extractAttributeAsArray($response['subscriptions'], 'subscription');
 }
 public function testIn_multipleValues()
 {
     $creditCard = SubscriptionHelper::createCreditCard();
     $triallessPlan = SubscriptionHelper::triallessPlan();
     $activeSubscription = Braintree\Subscription::create(array('paymentMethodToken' => $creditCard->token, 'planId' => $triallessPlan['id'], 'price' => '4'))->subscription;
     $canceledSubscription = Braintree\Subscription::create(array('paymentMethodToken' => $creditCard->token, 'planId' => $triallessPlan['id'], 'price' => '4'))->subscription;
     Braintree\Subscription::cancel($canceledSubscription->id);
     $collection = Braintree\Subscription::search(array(Braintree\SubscriptionSearch::status()->in(array(Braintree\Subscription::ACTIVE, Braintree\Subscription::CANCELED)), Braintree\SubscriptionSearch::price()->is('4')));
     $this->assertTrue(Test\Helper::includes($collection, $activeSubscription));
     $this->assertTrue(Test\Helper::includes($collection, $canceledSubscription));
 }
 public function testSearch_transactionId()
 {
     $creditCard = SubscriptionHelper::createCreditCard();
     $triallessPlan = SubscriptionHelper::triallessPlan();
     $matchingSubscription = Braintree\Subscription::create(['paymentMethodToken' => $creditCard->token, 'planId' => $triallessPlan['id']])->subscription;
     $nonMatchingSubscription = Braintree\Subscription::create(['paymentMethodToken' => $creditCard->token, 'planId' => $triallessPlan['id']])->subscription;
     $collection = Braintree\Subscription::search([Braintree\SubscriptionSearch::transactionId()->is($matchingSubscription->transactions[0]->id)]);
     $this->assertTrue(Test\Helper::includes($collection, $matchingSubscription));
     $this->assertFalse(Test\Helper::includes($collection, $nonMatchingSubscription));
 }
 public function testSearch_status_isMultipleValueNode()
 {
     $node = Braintree\SubscriptionSearch::status();
     $this->assertInstanceOf('Braintree\\MultipleValueNode', $node);
 }
Example #5
0
 /**
  * Find an invoice for subscription by transaction ID.
  *
  * @param string $id
  *
  * @return \LimeDeck\CashierBraintree\Invoice|null
  */
 public function findInvoice($plan, $id)
 {
     $subscription = BraintreeSubscription::search(SubscriptionSearch::planId($plan));
     $transaction = Transaction::find($id);
     try {
         return new Invoice($this, $subscription, $transaction);
     } catch (Exception $e) {
         return null;
     }
 }
Example #6
-1
 public function testContains()
 {
     $creditCard = SubscriptionHelper::createCreditCard();
     $triallessPlan = SubscriptionHelper::triallessPlan();
     $trialPlan = SubscriptionHelper::trialPlan();
     $trialSubscription = Braintree\Subscription::create(['paymentMethodToken' => $creditCard->token, 'planId' => $trialPlan['id'], 'price' => '9'])->subscription;
     $triallessSubscription = Braintree\Subscription::create(['paymentMethodToken' => $creditCard->token, 'planId' => $triallessPlan['id'], 'price' => '9'])->subscription;
     $collection = Braintree\Subscription::search([Braintree\SubscriptionSearch::planId()->contains("ration_trial_pl"), Braintree\SubscriptionSearch::price()->is("9")]);
     $this->assertTrue(Test\Helper::includes($collection, $trialSubscription));
     $this->assertFalse(Test\Helper::includes($collection, $triallessSubscription));
 }