summaryrefslogtreecommitdiffstats
path: root/vendor/stripe/stripe-php/lib/Util/RequestOptions.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/stripe/stripe-php/lib/Util/RequestOptions.php')
-rw-r--r--vendor/stripe/stripe-php/lib/Util/RequestOptions.php336
1 files changed, 168 insertions, 168 deletions
diff --git a/vendor/stripe/stripe-php/lib/Util/RequestOptions.php b/vendor/stripe/stripe-php/lib/Util/RequestOptions.php
index 89924bb..a0b7b99 100644
--- a/vendor/stripe/stripe-php/lib/Util/RequestOptions.php
+++ b/vendor/stripe/stripe-php/lib/Util/RequestOptions.php
@@ -1,168 +1,168 @@
-<?php
-
-namespace Stripe\Util;
-
-class RequestOptions
-{
- /**
- * @var array<string> a list of headers that should be persisted across requests
- */
- public static $HEADERS_TO_PERSIST = [
- 'Stripe-Account',
- 'Stripe-Version',
- ];
-
- /** @var array<string, string> */
- public $headers;
-
- /** @var null|string */
- public $apiKey;
-
- /** @var null|string */
- public $apiBase;
-
- /**
- * @param null|string $key
- * @param array<string, string> $headers
- * @param null|string $base
- */
- public function __construct($key = null, $headers = [], $base = null)
- {
- $this->apiKey = $key;
- $this->headers = $headers;
- $this->apiBase = $base;
- }
-
- /**
- * @return array<string, string>
- */
- public function __debugInfo()
- {
- return [
- 'apiKey' => $this->redactedApiKey(),
- 'headers' => $this->headers,
- 'apiBase' => $this->apiBase,
- ];
- }
-
- /**
- * Unpacks an options array and merges it into the existing RequestOptions
- * object.
- *
- * @param null|array|RequestOptions|string $options a key => value array
- * @param bool $strict when true, forbid string form and arbitrary keys in array form
- *
- * @return RequestOptions
- */
- public function merge($options, $strict = false)
- {
- $other_options = self::parse($options, $strict);
- if (null === $other_options->apiKey) {
- $other_options->apiKey = $this->apiKey;
- }
- if (null === $other_options->apiBase) {
- $other_options->apiBase = $this->apiBase;
- }
- $other_options->headers = \array_merge($this->headers, $other_options->headers);
-
- return $other_options;
- }
-
- /**
- * Discards all headers that we don't want to persist across requests.
- */
- public function discardNonPersistentHeaders()
- {
- foreach ($this->headers as $k => $v) {
- if (!\in_array($k, self::$HEADERS_TO_PERSIST, true)) {
- unset($this->headers[$k]);
- }
- }
- }
-
- /**
- * Unpacks an options array into an RequestOptions object.
- *
- * @param null|array|RequestOptions|string $options a key => value array
- * @param bool $strict when true, forbid string form and arbitrary keys in array form
- *
- * @throws \Stripe\Exception\InvalidArgumentException
- *
- * @return RequestOptions
- */
- public static function parse($options, $strict = false)
- {
- if ($options instanceof self) {
- return $options;
- }
-
- if (null === $options) {
- return new RequestOptions(null, [], null);
- }
-
- if (\is_string($options)) {
- if ($strict) {
- $message = 'Do not pass a string for request options. If you want to set the '
- . 'API key, pass an array like ["api_key" => <apiKey>] instead.';
-
- throw new \Stripe\Exception\InvalidArgumentException($message);
- }
-
- return new RequestOptions($options, [], null);
- }
-
- if (\is_array($options)) {
- $headers = [];
- $key = null;
- $base = null;
-
- if (\array_key_exists('api_key', $options)) {
- $key = $options['api_key'];
- unset($options['api_key']);
- }
- if (\array_key_exists('idempotency_key', $options)) {
- $headers['Idempotency-Key'] = $options['idempotency_key'];
- unset($options['idempotency_key']);
- }
- if (\array_key_exists('stripe_account', $options)) {
- $headers['Stripe-Account'] = $options['stripe_account'];
- unset($options['stripe_account']);
- }
- if (\array_key_exists('stripe_version', $options)) {
- $headers['Stripe-Version'] = $options['stripe_version'];
- unset($options['stripe_version']);
- }
- if (\array_key_exists('api_base', $options)) {
- $base = $options['api_base'];
- unset($options['api_base']);
- }
-
- if ($strict && !empty($options)) {
- $message = 'Got unexpected keys in options array: ' . \implode(', ', \array_keys($options));
-
- throw new \Stripe\Exception\InvalidArgumentException($message);
- }
-
- return new RequestOptions($key, $headers, $base);
- }
-
- $message = 'The second argument to Stripe API method calls is an '
- . 'optional per-request apiKey, which must be a string, or '
- . 'per-request options, which must be an array. (HINT: you can set '
- . 'a global apiKey by "Stripe::setApiKey(<apiKey>)")';
-
- throw new \Stripe\Exception\InvalidArgumentException($message);
- }
-
- private function redactedApiKey()
- {
- $pieces = \explode('_', $this->apiKey, 3);
- $last = \array_pop($pieces);
- $redactedLast = \strlen($last) > 4
- ? (\str_repeat('*', \strlen($last) - 4) . \substr($last, -4))
- : $last;
- $pieces[] = $redactedLast;
-
- return \implode('_', $pieces);
- }
-}
+<?php
+
+namespace Stripe\Util;
+
+class RequestOptions
+{
+ /**
+ * @var array<string> a list of headers that should be persisted across requests
+ */
+ public static $HEADERS_TO_PERSIST = [
+ 'Stripe-Account',
+ 'Stripe-Version',
+ ];
+
+ /** @var array<string, string> */
+ public $headers;
+
+ /** @var null|string */
+ public $apiKey;
+
+ /** @var null|string */
+ public $apiBase;
+
+ /**
+ * @param null|string $key
+ * @param array<string, string> $headers
+ * @param null|string $base
+ */
+ public function __construct($key = null, $headers = [], $base = null)
+ {
+ $this->apiKey = $key;
+ $this->headers = $headers;
+ $this->apiBase = $base;
+ }
+
+ /**
+ * @return array<string, string>
+ */
+ public function __debugInfo()
+ {
+ return [
+ 'apiKey' => $this->redactedApiKey(),
+ 'headers' => $this->headers,
+ 'apiBase' => $this->apiBase,
+ ];
+ }
+
+ /**
+ * Unpacks an options array and merges it into the existing RequestOptions
+ * object.
+ *
+ * @param null|array|RequestOptions|string $options a key => value array
+ * @param bool $strict when true, forbid string form and arbitrary keys in array form
+ *
+ * @return RequestOptions
+ */
+ public function merge($options, $strict = false)
+ {
+ $other_options = self::parse($options, $strict);
+ if (null === $other_options->apiKey) {
+ $other_options->apiKey = $this->apiKey;
+ }
+ if (null === $other_options->apiBase) {
+ $other_options->apiBase = $this->apiBase;
+ }
+ $other_options->headers = \array_merge($this->headers, $other_options->headers);
+
+ return $other_options;
+ }
+
+ /**
+ * Discards all headers that we don't want to persist across requests.
+ */
+ public function discardNonPersistentHeaders()
+ {
+ foreach ($this->headers as $k => $v) {
+ if (!\in_array($k, self::$HEADERS_TO_PERSIST, true)) {
+ unset($this->headers[$k]);
+ }
+ }
+ }
+
+ /**
+ * Unpacks an options array into an RequestOptions object.
+ *
+ * @param null|array|RequestOptions|string $options a key => value array
+ * @param bool $strict when true, forbid string form and arbitrary keys in array form
+ *
+ * @throws \Stripe\Exception\InvalidArgumentException
+ *
+ * @return RequestOptions
+ */
+ public static function parse($options, $strict = false)
+ {
+ if ($options instanceof self) {
+ return clone $options;
+ }
+
+ if (null === $options) {
+ return new RequestOptions(null, [], null);
+ }
+
+ if (\is_string($options)) {
+ if ($strict) {
+ $message = 'Do not pass a string for request options. If you want to set the '
+ . 'API key, pass an array like ["api_key" => <apiKey>] instead.';
+
+ throw new \Stripe\Exception\InvalidArgumentException($message);
+ }
+
+ return new RequestOptions($options, [], null);
+ }
+
+ if (\is_array($options)) {
+ $headers = [];
+ $key = null;
+ $base = null;
+
+ if (\array_key_exists('api_key', $options)) {
+ $key = $options['api_key'];
+ unset($options['api_key']);
+ }
+ if (\array_key_exists('idempotency_key', $options)) {
+ $headers['Idempotency-Key'] = $options['idempotency_key'];
+ unset($options['idempotency_key']);
+ }
+ if (\array_key_exists('stripe_account', $options)) {
+ $headers['Stripe-Account'] = $options['stripe_account'];
+ unset($options['stripe_account']);
+ }
+ if (\array_key_exists('stripe_version', $options)) {
+ $headers['Stripe-Version'] = $options['stripe_version'];
+ unset($options['stripe_version']);
+ }
+ if (\array_key_exists('api_base', $options)) {
+ $base = $options['api_base'];
+ unset($options['api_base']);
+ }
+
+ if ($strict && !empty($options)) {
+ $message = 'Got unexpected keys in options array: ' . \implode(', ', \array_keys($options));
+
+ throw new \Stripe\Exception\InvalidArgumentException($message);
+ }
+
+ return new RequestOptions($key, $headers, $base);
+ }
+
+ $message = 'The second argument to Stripe API method calls is an '
+ . 'optional per-request apiKey, which must be a string, or '
+ . 'per-request options, which must be an array. (HINT: you can set '
+ . 'a global apiKey by "Stripe::setApiKey(<apiKey>)")';
+
+ throw new \Stripe\Exception\InvalidArgumentException($message);
+ }
+
+ private function redactedApiKey()
+ {
+ $pieces = \explode('_', $this->apiKey, 3);
+ $last = \array_pop($pieces);
+ $redactedLast = \strlen($last) > 4
+ ? (\str_repeat('*', \strlen($last) - 4) . \substr($last, -4))
+ : $last;
+ $pieces[] = $redactedLast;
+
+ return \implode('_', $pieces);
+ }
+}