From 2e5dbcbea08c5efedb0533047084f916bd772d43 Mon Sep 17 00:00:00 2001 From: Daniel Seifert Date: Sun, 22 Dec 2024 13:52:28 +0100 Subject: [PATCH] add subscription process endpoint --- src/Entities/Subscription.php | 13 +++++++ src/Klicktipp.php | 6 +++ src/Resources/SubscriptionProcess.php | 54 +++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 src/Entities/Subscription.php create mode 100644 src/Resources/SubscriptionProcess.php diff --git a/src/Entities/Subscription.php b/src/Entities/Subscription.php new file mode 100644 index 0000000..0863c52 --- /dev/null +++ b/src/Entities/Subscription.php @@ -0,0 +1,13 @@ +get('id'); + } +} \ No newline at end of file diff --git a/src/Klicktipp.php b/src/Klicktipp.php index b1b2ec7..57f26a7 100644 --- a/src/Klicktipp.php +++ b/src/Klicktipp.php @@ -18,6 +18,7 @@ namespace D3\KlicktippPhpClient; use D3\KlicktippPhpClient\Exceptions\BaseException; use D3\KlicktippPhpClient\Resources\Account; use D3\KlicktippPhpClient\Resources\Subscriber; +use D3\KlicktippPhpClient\Resources\SubscriptionProcess; use D3\KlicktippPhpClient\Resources\Tag; use GuzzleHttp\ClientInterface; use GuzzleHttp\Exception\GuzzleException; @@ -57,6 +58,11 @@ class Klicktipp return $this->connection; } + public function subscription(): SubscriptionProcess + { + return new SubscriptionProcess($this->getConnection()); + } + public function account(): Account { return new Account($this->getConnection()); diff --git a/src/Resources/SubscriptionProcess.php b/src/Resources/SubscriptionProcess.php new file mode 100644 index 0000000..2dc739a --- /dev/null +++ b/src/Resources/SubscriptionProcess.php @@ -0,0 +1,54 @@ +connection->requestAndParse( + 'GET', + 'list' + ); + } + + /** + * @throws BaseException|GuzzleException + */ + public function get(string $listId): SubscriptionEntity + { + $data = $this->connection->requestAndParse( + 'GET', + 'list/'.urlencode(trim($listId)) + ); + + return new SubscriptionEntity($data); + } + + /** + * @throws BaseException|GuzzleException + */ + public function redirect(string $listId, string $email): string + { + return current( + $this->connection->requestAndParse( + 'POST', + 'list/redirect', + [ + RequestOptions::FORM_PARAMS => [ + 'listid' => trim($listId), + 'email' => trim($email), + ] + ] + ) + ); + } +}