diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2024-05-27 13:08:29 +0200 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2024-05-27 13:08:29 +0200 |
commit | 75160b12821f7f4299cce7f0b69c83c1502ae071 (patch) | |
tree | 27e25e4ccaef45f0c58b22831164050d1af1d4db /vendor/minishlink/web-push/src/Subscription.php | |
parent | prvi-commit (diff) | |
download | 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.gz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.bz2 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.lz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.xz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.zst 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.zip |
Diffstat (limited to 'vendor/minishlink/web-push/src/Subscription.php')
-rw-r--r-- | vendor/minishlink/web-push/src/Subscription.php | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/vendor/minishlink/web-push/src/Subscription.php b/vendor/minishlink/web-push/src/Subscription.php index 1232893..f570c30 100644 --- a/vendor/minishlink/web-push/src/Subscription.php +++ b/vendor/minishlink/web-push/src/Subscription.php @@ -1,122 +1,122 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the WebPush library. - * - * (c) Louis Lagrange <lagrange.louis@gmail.com> - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Minishlink\WebPush; - -class Subscription implements SubscriptionInterface -{ - /** @var string */ - private $endpoint; - - /** @var null|string */ - private $publicKey; - - /** @var null|string */ - private $authToken; - - /** @var null|string */ - private $contentEncoding; - - /** - * Subscription constructor. - * - * @param string $endpoint - * @param null|string $publicKey - * @param null|string $authToken - * @param string $contentEncoding (Optional) Must be "aesgcm" - * @throws \ErrorException - */ - public function __construct( - string $endpoint, - ?string $publicKey = null, - ?string $authToken = null, - ?string $contentEncoding = null - ) { - $this->endpoint = $endpoint; - - if ($publicKey || $authToken || $contentEncoding) { - $supportedContentEncodings = ['aesgcm', 'aes128gcm']; - if ($contentEncoding && !in_array($contentEncoding, $supportedContentEncodings)) { - throw new \ErrorException('This content encoding ('.$contentEncoding.') is not supported.'); - } - - $this->publicKey = $publicKey; - $this->authToken = $authToken; - $this->contentEncoding = $contentEncoding ?: "aesgcm"; - } - } - - /** - * Subscription factory. - * - * @param array $associativeArray (with keys endpoint, publicKey, authToken, contentEncoding) - * @return self - * @throws \ErrorException - */ - public static function create(array $associativeArray): self - { - if (array_key_exists('keys', $associativeArray) && is_array($associativeArray['keys'])) { - return new self( - $associativeArray['endpoint'], - $associativeArray['keys']['p256dh'] ?? null, - $associativeArray['keys']['auth'] ?? null, - $associativeArray['contentEncoding'] ?? "aesgcm" - ); - } - - if (array_key_exists('publicKey', $associativeArray) || array_key_exists('authToken', $associativeArray) || array_key_exists('contentEncoding', $associativeArray)) { - return new self( - $associativeArray['endpoint'], - $associativeArray['publicKey'] ?? null, - $associativeArray['authToken'] ?? null, - $associativeArray['contentEncoding'] ?? "aesgcm" - ); - } - - return new self( - $associativeArray['endpoint'] - ); - } - - /** - * {@inheritDoc} - */ - public function getEndpoint(): string - { - return $this->endpoint; - } - - /** - * {@inheritDoc} - */ - public function getPublicKey(): ?string - { - return $this->publicKey; - } - - /** - * {@inheritDoc} - */ - public function getAuthToken(): ?string - { - return $this->authToken; - } - - /** - * {@inheritDoc} - */ - public function getContentEncoding(): ?string - { - return $this->contentEncoding; - } -} +<?php
+
+declare(strict_types=1);
+
+/*
+ * This file is part of the WebPush library.
+ *
+ * (c) Louis Lagrange <lagrange.louis@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Minishlink\WebPush;
+
+class Subscription implements SubscriptionInterface
+{
+ /** @var string */
+ private $endpoint;
+
+ /** @var null|string */
+ private $publicKey;
+
+ /** @var null|string */
+ private $authToken;
+
+ /** @var null|string */
+ private $contentEncoding;
+
+ /**
+ * Subscription constructor.
+ *
+ * @param string $endpoint
+ * @param null|string $publicKey
+ * @param null|string $authToken
+ * @param string $contentEncoding (Optional) Must be "aesgcm"
+ * @throws \ErrorException
+ */
+ public function __construct(
+ string $endpoint,
+ ?string $publicKey = null,
+ ?string $authToken = null,
+ ?string $contentEncoding = null
+ ) {
+ $this->endpoint = $endpoint;
+
+ if ($publicKey || $authToken || $contentEncoding) {
+ $supportedContentEncodings = ['aesgcm', 'aes128gcm'];
+ if ($contentEncoding && !in_array($contentEncoding, $supportedContentEncodings)) {
+ throw new \ErrorException('This content encoding ('.$contentEncoding.') is not supported.');
+ }
+
+ $this->publicKey = $publicKey;
+ $this->authToken = $authToken;
+ $this->contentEncoding = $contentEncoding ?: "aesgcm";
+ }
+ }
+
+ /**
+ * Subscription factory.
+ *
+ * @param array $associativeArray (with keys endpoint, publicKey, authToken, contentEncoding)
+ * @return self
+ * @throws \ErrorException
+ */
+ public static function create(array $associativeArray): self
+ {
+ if (array_key_exists('keys', $associativeArray) && is_array($associativeArray['keys'])) {
+ return new self(
+ $associativeArray['endpoint'],
+ $associativeArray['keys']['p256dh'] ?? null,
+ $associativeArray['keys']['auth'] ?? null,
+ $associativeArray['contentEncoding'] ?? "aesgcm"
+ );
+ }
+
+ if (array_key_exists('publicKey', $associativeArray) || array_key_exists('authToken', $associativeArray) || array_key_exists('contentEncoding', $associativeArray)) {
+ return new self(
+ $associativeArray['endpoint'],
+ $associativeArray['publicKey'] ?? null,
+ $associativeArray['authToken'] ?? null,
+ $associativeArray['contentEncoding'] ?? "aesgcm"
+ );
+ }
+
+ return new self(
+ $associativeArray['endpoint']
+ );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function getEndpoint(): string
+ {
+ return $this->endpoint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function getPublicKey(): ?string
+ {
+ return $this->publicKey;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function getAuthToken(): ?string
+ {
+ return $this->authToken;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function getContentEncoding(): ?string
+ {
+ return $this->contentEncoding;
+ }
+}
|