diff --git a/CHANGELOG.md b/CHANGELOG.md index acb67b232..02c91e7ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,11 @@ Security - in case of vulnerabilities. ## [Unreleased] -_TBD_ +### Removed + +- [x] Removed `SubscriptionService::cancel()` method (use `SubscriptionCancellationService` service instead). +- [x] Removed `SubscriptionService::changePlan()` method (use `SubscriptionService::changeItems` method instead). +- [x] Removed `SubscriptionCancel`, `SubscriptionChangePlan` classes. ## [2.22.0] 2023-05-29 diff --git a/src/Entities/Schema.php b/src/Entities/Schema.php index febbde95d..192a7979a 100644 --- a/src/Entities/Schema.php +++ b/src/Entities/Schema.php @@ -123,9 +123,6 @@ public function __construct() 'subscriptions/{subscriptionId}' => function (array $content) { return new Subscription($content); }, - 'subscriptions/{subscriptionId}/change-plan' => function (array $content) { - return new Subscription($content); - }, 'subscriptions/{subscriptionId}/change-items' => function (array $content) { return new Subscription($content); }, diff --git a/src/Entities/SubscriptionCancel.php b/src/Entities/SubscriptionCancel.php deleted file mode 100644 index b8ab2c721..000000000 --- a/src/Entities/SubscriptionCancel.php +++ /dev/null @@ -1,188 +0,0 @@ -getAttribute('policy'); - } - - /** - * @return string - */ - public function getCancelCategory() - { - return $this->getAttribute('cancelCategory'); - } - - /** - * @return string - */ - public function getCanceledBy() - { - return $this->getAttribute('canceledBy'); - } - - /** - * @return string - */ - public function getCancelDescription() - { - return $this->getAttribute('cancelDescription'); - } - - /** - * @param string $value - * - * @return SubscriptionCancel - */ - public function setCancelDescription($value) - { - return $this->setAttribute('cancelDescription', $value); - } - - /** - * @param string $value - * - * @throws DomainException - * - * @return SubscriptionCancel - */ - public function setPolicy($value) - { - if (!in_array($value, self::policies(), true)) { - throw new DomainException(sprintf(self::MSG_UNEXPECTED_POLICY, implode(', ', self::policies()))); - } - - return $this->setAttribute('policy', $value); - } - - /** - * @param string $value - * - * @throws DomainException - * - * @return SubscriptionCancel - */ - public function setCancelCategory($value) - { - if (!in_array($value, self::cancelCategories(), true)) { - throw new DomainException(sprintf(self::UNEXPECTED_CATEGORY, implode(', ', self::cancelCategories()))); - } - - return $this->setAttribute('cancelCategory', $value); - } - - /** - * @param string $value - * - * @throws DomainException - * - * @return SubscriptionCancel - */ - public function setCanceledBy($value) - { - if (!in_array($value, self::canceledBySources(), true)) { - throw new DomainException(sprintf(self::UNEXPECTED_CATEGORY, implode(', ', self::canceledBySources()))); - } - - return $this->setAttribute('canceledBy', $value); - } -} diff --git a/src/Entities/SubscriptionChangePlan.php b/src/Entities/SubscriptionChangePlan.php deleted file mode 100644 index 2b1e145ef..000000000 --- a/src/Entities/SubscriptionChangePlan.php +++ /dev/null @@ -1,172 +0,0 @@ -setAttribute('subscriptionId', $value); - } - - /** - * @param $value - */ - public function setPlanId($value) - { - $this->setAttribute('planId', $value); - } - - /** - * @param $value - * - * @throws DomainException - */ - public function setRenewalPolicy($value) - { - if (!in_array($value, self::renewalPolicies(), true)) { - throw new DomainException(sprintf(self::UNEXPECTED_RENEWAL_POLICY, implode(', ', self::renewalPolicies()))); - } - $this->setAttribute('renewalPolicy', $value); - } - - /** - * @param $value - */ - public function setProrated($value) - { - $this->setAttribute('prorated', $value); - } - - /** - * @param $value - */ - public function setEffectiveTime($value) - { - $this->setAttribute('effectiveTime', $value); - } - - /** - * @param $value - */ - public function setPreview($value) - { - $this->setAttribute('preview', $value); - } - - /** - * @param int $value - */ - public function setQuantity($value) - { - $this->setAttribute('quantity', $value); - } - - /** - * @param $value - */ - public function setKeepTrial($value) - { - $this->setAttribute('keepTrial', $value); - } - - /** - * @return string - */ - public function getSubscriptionId() - { - return $this->getAttribute('subscriptionId'); - } - - /** - * @return string - */ - public function getPlanId() - { - return $this->getAttribute('planId'); - } - - /** - * @return bool - */ - public function getPreview() - { - return $this->getAttribute('preview'); - } - - /** - * @return bool - */ - public function getProrated() - { - return $this->getAttribute('prorated'); - } - - /** - * @return string - */ - public function getRenewalPolicy() - { - return $this->getAttribute('renewalPolicy'); - } - - /** - * @return string - */ - public function getEffectiveTime() - { - return $this->getAttribute('effectiveTime'); - } - - /** - * @return int - */ - public function getQuantity() - { - return $this->getAttribute('quantity'); - } - - /** - * @return bool - */ - public function getKeepTrial() - { - return $this->getAttribute('keepTrial'); - } -} diff --git a/src/Services/SubscriptionService.php b/src/Services/SubscriptionService.php index 77d739008..69c1aa9e3 100644 --- a/src/Services/SubscriptionService.php +++ b/src/Services/SubscriptionService.php @@ -16,9 +16,7 @@ use Rebilly\Entities\Invoice; use Rebilly\Entities\PreviewOrder; use Rebilly\Entities\Subscription; -use Rebilly\Entities\SubscriptionCancel; use Rebilly\Entities\SubscriptionChangeItems; -use Rebilly\Entities\SubscriptionChangePlan; use Rebilly\Entities\SubscriptionInterimInvoice; use Rebilly\Http\Exception\DataValidationException; use Rebilly\Http\Exception\NotFoundException; @@ -95,25 +93,6 @@ public function update($subscriptionId, $data) return $this->client()->put($data, 'subscriptions/{subscriptionId}', ['subscriptionId' => $subscriptionId]); } - /** - * @deprecated Use SubscriptionCancellationService instead. - * - * @param string $subscriptionId - * @param array|JsonSerializable|SubscriptionCancel $data - * - * @throws DataValidationException if input data is not valid - * - * @return Subscription - */ - public function cancel($subscriptionId, $data) - { - return $this->client()->post( - $data, - 'subscriptions/{subscriptionId}/cancel', - ['subscriptionId' => $subscriptionId] - ); - } - /** * @param string $subscriptionId */ @@ -132,26 +111,6 @@ public function void($subscriptionId) return $this->client()->post([], 'subscriptions/{subscriptionId}/void', ['subscriptionId' => $subscriptionId]); } - /** - * @deprecated - * @see changeItems - * - * @param string $subscriptionId - * @param array|JsonSerializable|SubscriptionChangePlan $data - * - * @throws DataValidationException if input data is not valid - * - * @return Subscription - */ - public function changePlan($subscriptionId, $data) - { - return $this->client()->post( - $data, - 'subscriptions/{subscriptionId}/change-plan', - ['subscriptionId' => $subscriptionId] - ); - } - /** * @param string $subscriptionId * @param array|JsonSerializable|SubscriptionInterimInvoice $data diff --git a/tests/Api/ApiTest.php b/tests/Api/ApiTest.php index f6ed95d79..477d285f4 100644 --- a/tests/Api/ApiTest.php +++ b/tests/Api/ApiTest.php @@ -170,7 +170,6 @@ public function provideEntityClasses(): iterable [Entities\ResetPasswordToken::class, 'token'], [Entities\SubscriptionReactivation::class, null], [Entities\Subscription::class], - [Entities\SubscriptionCancel::class, null], [Entities\SubscriptionCancellation::class, null], [Entities\LineItem::class, null], [Entities\Transaction::class], @@ -201,7 +200,6 @@ public function provideEntityClasses(): iterable [Entities\Shipping::class], [Entities\InvoiceTax::class], [Entities\InvoiceTaxItem::class], - [Entities\SubscriptionChangePlan::class], [Entities\SubscriptionInterimInvoice::class], [Entities\PaymentInstruments\BankAccountPaymentInstrument::class, null], [Entities\PaymentInstruments\PaymentCardPaymentInstrument::class, null], diff --git a/tests/Api/ServiceTest.php b/tests/Api/ServiceTest.php index 77a7b475c..447f9b33e 100644 --- a/tests/Api/ServiceTest.php +++ b/tests/Api/ServiceTest.php @@ -463,12 +463,6 @@ public function subscriptionService() $service = $client->subscriptions(); - $result = $service->cancel('dummy', []); - self::assertInstanceOf(Entities\Subscription::class, $result); - - $result = $service->changePlan('dummy', []); - self::assertInstanceOf(Entities\Subscription::class, $result); - $result = $service->issueInterimInvoice('dummy', []); self::assertInstanceOf(Entities\Subscription::class, $result); diff --git a/tests/Api/SubscriptionTest.php b/tests/Api/SubscriptionTest.php deleted file mode 100644 index 7124b48b6..000000000 --- a/tests/Api/SubscriptionTest.php +++ /dev/null @@ -1,55 +0,0 @@ -expectException(DomainException::class); - $subscriptionCancel->setPolicy('wrong'); - } - - /** - * @test - */ - public function cancelCategoryMustBeCorrect() - { - $subscriptionCancel = new SubscriptionCancel(); - - $this->expectException(DomainException::class); - $subscriptionCancel->setCancelCategory('wrong'); - } - - /** - * @test - */ - public function canceledByMustBeCorrect() - { - $subscriptionCancel = new SubscriptionCancel(); - - $this->expectException(DomainException::class); - $subscriptionCancel->setCanceledBy('wrong'); - } -} diff --git a/tests/TestCase.php b/tests/TestCase.php index fb9bcaa96..0a2e7bca3 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -376,16 +376,6 @@ protected function getFakeValue($attribute, $class) ); } // no break - case 'policy': - switch ($class) { - case Entities\SubscriptionCancel::class: - return self::randomElements(Entities\SubscriptionCancel::policies())[0]; - default: - throw new InvalidArgumentException( - sprintf('Cannot generate fake value for "%s :: %s"', $class, $attribute) - ); - } - // no break case 'items': switch ($class) { case Entities\Subscription::class: @@ -604,8 +594,6 @@ protected function getFakeValue($attribute, $class) self::TEST_WORD, random_int(1, 100), ]; - case 'cancelCategory': - return self::randomElements(Entities\SubscriptionCancel::cancelCategories())[0]; case 'reason': switch ($class) { case Entities\CreditMemo::class: @@ -626,7 +614,7 @@ protected function getFakeValue($attribute, $class) 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', ]; case 'renewalPolicy': - return self::randomElements(Entities\SubscriptionChangePlan::renewalPolicies())[0]; + return self::randomElements(Entities\SubscriptionChangeItems::renewalPolicies())[0]; case 'notifications': return [ [