PATH:
home
/
letacommog
/
newrdv1
/
wp-content
/
plugins
/
sf-booking
/
payment-gateway
/
stripe
/
lib
<?php namespace Stripe; /** * Class Collection * * @property string $object * @property string $url * @property bool $has_more * @property mixed $data * * @package Stripe */ class Collection extends StripeObject implements \IteratorAggregate { const OBJECT_NAME = 'list'; use ApiOperations\Request; /** @var array */ protected $filters = []; /** * @return string The base URL for the given class. */ public static function baseUrl() { return Stripe::$apiBase; } /** * Returns the filters. * * @return array The filters. */ public function getFilters() { return $this->filters; } /** * Sets the filters, removing paging options. * * @param array $filters The filters. */ public function setFilters($filters) { $this->filters = $filters; } public function offsetGet($k) { if (is_string($k)) { return parent::offsetGet($k); } else { $msg = "You tried to access the {$k} index, but Collection " . "types only support string keys. (HINT: List calls " . "return an object with a `data` (which is the data " . "array). You likely want to call ->data[{$k}])"; throw new Exception\InvalidArgumentException($msg); } } public function all($params = null, $opts = null) { self::_validateParams($params); list($url, $params) = $this->extractPathAndUpdateParams($params); list($response, $opts) = $this->_request('get', $url, $params, $opts); $obj = Util\Util::convertToStripeObject($response, $opts); if (!($obj instanceof \Stripe\Collection)) { throw new \Stripe\Exception\UnexpectedValueException( 'Expected type ' . \Stripe\Collection::class . ', got "' . get_class($obj) . '" instead.' ); } $obj->setFilters($params); return $obj; } public function create($params = null, $opts = null) { self::_validateParams($params); list($url, $params) = $this->extractPathAndUpdateParams($params); list($response, $opts) = $this->_request('post', $url, $params, $opts); return Util\Util::convertToStripeObject($response, $opts); } public function retrieve($id, $params = null, $opts = null) { self::_validateParams($params); list($url, $params) = $this->extractPathAndUpdateParams($params); $id = Util\Util::utf8($id); $extn = urlencode($id); list($response, $opts) = $this->_request( 'get', "$url/$extn", $params, $opts ); return Util\Util::convertToStripeObject($response, $opts); } /** * @return \ArrayIterator An iterator that can be used to iterate * across objects in the current page. */ public function getIterator() { return new \ArrayIterator($this->data); } /** * @return \ArrayIterator An iterator that can be used to iterate * backwards across objects in the current page. */ public function getReverseIterator() { return new \ArrayIterator(array_reverse($this->data)); } /** * @return \Generator|StripeObject[] A generator that can be used to * iterate across all objects across all pages. As page boundaries are * encountered, the next page will be fetched automatically for * continued iteration. */ public function autoPagingIterator() { $page = $this; while (true) { $filters = $this->filters ?: []; if (array_key_exists('ending_before', $filters) && !array_key_exists('starting_after', $filters)) { foreach ($page->getReverseIterator() as $item) { yield $item; } $page = $page->previousPage(); } else { foreach ($page as $item) { yield $item; } $page = $page->nextPage(); } if ($page->isEmpty()) { break; } } } /** * Returns an empty collection. This is returned from {@see nextPage()} * when we know that there isn't a next page in order to replicate the * behavior of the API when it attempts to return a page beyond the last. * * @param array|string|null $opts * @return Collection */ public static function emptyCollection($opts = null) { return Collection::constructFrom(['data' => []], $opts); } /** * Returns true if the page object contains no element. * * @return boolean */ public function isEmpty() { return empty($this->data); } /** * Fetches the next page in the resource list (if there is one). * * This method will try to respect the limit of the current page. If none * was given, the default limit will be fetched again. * * @param array|null $params * @param array|string|null $opts * @return Collection */ public function nextPage($params = null, $opts = null) { if (!$this->has_more) { return static::emptyCollection($opts); } $lastId = end($this->data)->id; $params = array_merge( $this->filters ?: [], ['starting_after' => $lastId], $params ?: [] ); return $this->all($params, $opts); } /** * Fetches the previous page in the resource list (if there is one). * * This method will try to respect the limit of the current page. If none * was given, the default limit will be fetched again. * * @param array|null $params * @param array|string|null $opts * @return Collection */ public function previousPage($params = null, $opts = null) { if (!$this->has_more) { return static::emptyCollection($opts); } $firstId = $this->data[0]->id; $params = array_merge( $this->filters ?: [], ['ending_before' => $firstId], $params ?: [] ); return $this->all($params, $opts); } private function extractPathAndUpdateParams($params) { $url = parse_url($this->url); if (!isset($url['path'])) { throw new Exception\UnexpectedValueException("Could not parse list url into parts: $url"); } if (isset($url['query'])) { // If the URL contains a query param, parse it out into $params so they // don't interact weirdly with each other. $query = []; parse_str($url['query'], $query); $params = array_merge($params ?: [], $query); } return [$url['path'], $params]; } }
[+]
..
[+]
Sigma
[-] Review.php
[edit]
[-] CustomerBalanceTransaction.php
[edit]
[-] BankAccount.php
[edit]
[-] WebhookSignature.php
[edit]
[+]
Radar
[-] PaymentMethod.php
[edit]
[-] LoginLink.php
[edit]
[-] Customer.php
[edit]
[-] SingletonApiResource.php
[edit]
[-] ApplicationFeeRefund.php
[edit]
[-] BalanceTransaction.php
[edit]
[-] Dispute.php
[edit]
[-] Topup.php
[edit]
[-] EphemeralKey.php
[edit]
[-] StripeObject.php
[edit]
[-] FileLink.php
[edit]
[+]
HttpClient
[-] ErrorObject.php
[edit]
[-] CreditNote.php
[edit]
[-] SubscriptionItem.php
[edit]
[-] ExchangeRate.php
[edit]
[+]
Issuing
[+]
Terminal
[-] RecipientTransfer.php
[edit]
[-] Coupon.php
[edit]
[-] Account.php
[edit]
[-] Stripe.php
[edit]
[-] WebhookEndpoint.php
[edit]
[-] File.php
[edit]
[-] Capability.php
[edit]
[-] Transfer.php
[edit]
[-] SubscriptionSchedule.php
[edit]
[+]
Util
[-] SourceTransaction.php
[edit]
[-] ApiRequestor.php
[edit]
[-] AccountLink.php
[edit]
[+]
ApiOperations
[+]
Exception
[-] Balance.php
[edit]
[-] InvoiceLineItem.php
[edit]
[-] OAuth.php
[edit]
[-] ApiResource.php
[edit]
[-] Collection.php
[edit]
[-] Webhook.php
[edit]
[-] PaymentIntent.php
[edit]
[-] UsageRecord.php
[edit]
[-] Subscription.php
[edit]
[-] SetupIntent.php
[edit]
[-] Token.php
[edit]
[-] Event.php
[edit]
[-] Recipient.php
[edit]
[-] ApplicationFee.php
[edit]
[-] Card.php
[edit]
[-] ApplePayDomain.php
[edit]
[-] Discount.php
[edit]
[-] BitcoinReceiver.php
[edit]
[-] CreditNoteLineItem.php
[edit]
[-] CountrySpec.php
[edit]
[-] TaxRate.php
[edit]
[+]
Reporting
[-] Plan.php
[edit]
[-] Source.php
[edit]
[-] OrderReturn.php
[edit]
[-] Order.php
[edit]
[-] TaxId.php
[edit]
[-] Mandate.php
[edit]
[-] Charge.php
[edit]
[-] OrderItem.php
[edit]
[-] RequestTelemetry.php
[edit]
[-] SKU.php
[edit]
[-] UsageRecordSummary.php
[edit]
[-] AlipayAccount.php
[edit]
[-] InvoiceItem.php
[edit]
[-] Product.php
[edit]
[-] TransferReversal.php
[edit]
[-] OAuthErrorObject.php
[edit]
[-] Refund.php
[edit]
[-] ThreeDSecure.php
[edit]
[-] Person.php
[edit]
[-] ApiResponse.php
[edit]
[-] Invoice.php
[edit]
[-] Payout.php
[edit]
[-] BitcoinTransaction.php
[edit]
[+]
Checkout