diff --git a/src/Actions/GetPlanUrl.php b/src/Actions/GetPlanUrl.php index 4dbba43f..a01a18de 100644 --- a/src/Actions/GetPlanUrl.php +++ b/src/Actions/GetPlanUrl.php @@ -70,20 +70,10 @@ public function __invoke(ShopId $shopId, NullablePlanId $planId, string $host): $plan = $planId->isNull() ? $this->planQuery->getDefault() : $this->planQuery->getById($planId); // Confirmation URL - if ($plan->getInterval()->toNative() === ChargeInterval::ANNUAL()->toNative()) { - $api = $shop->apiHelper() - ->createChargeGraphQL($this->chargeHelper->details($plan, $shop, $host)); + $api = $shop->apiHelper() + ->createChargeGraphQL($this->chargeHelper->details($plan, $shop, $host)); - $confirmationUrl = $api['confirmationUrl']; - } else { - $api = $shop->apiHelper() - ->createCharge( - ChargeType::fromNative($plan->getType()->toNative()), - $this->chargeHelper->details($plan, $shop, $host) - ); - - $confirmationUrl = $api['confirmation_url']; - } + $confirmationUrl = $api['confirmationUrl']; return $confirmationUrl; } diff --git a/src/Contracts/ApiHelper.php b/src/Contracts/ApiHelper.php index 2f1fce0c..a729050a 100644 --- a/src/Contracts/ApiHelper.php +++ b/src/Contracts/ApiHelper.php @@ -136,16 +136,6 @@ public function getCharge(ChargeType $chargeType, ChargeReference $chargeRef): R */ public function activateCharge(ChargeType $chargeType, ChargeReference $chargeRef): ResponseAccess; - /** - * Create a charge. - * - * @param ChargeType $chargeType The type of charge (plural). - * @param PlanDetails $payload The data for the charge creation. - * - * @return ResponseAccess - */ - public function createCharge(ChargeType $chargeType, PlanDetails $payload): ResponseAccess; - /** * Create a charge using GraphQL. * diff --git a/src/Services/ApiHelper.php b/src/Services/ApiHelper.php index 3916eb22..aa386a73 100644 --- a/src/Services/ApiHelper.php +++ b/src/Services/ApiHelper.php @@ -280,25 +280,6 @@ public function activateCharge(ChargeType $chargeType, ChargeReference $chargeRe return $response['body'][$typeString]; } - /** - * {@inheritdoc} - * TODO: Convert to GraphQL (merge createChargeGraphQL). - */ - public function createCharge(ChargeType $chargeType, PlanDetailsTransfer $payload): ResponseAccess - { - // API path - $typeString = $this->chargeApiPath($chargeType); - - // Fire the request - $response = $this->doRequest( - ApiMethod::POST(), - "/admin/{$typeString}s.json", - [$typeString => $payload->toArray()] - ); - - return $response['body'][$typeString]; - } - /** * {@inheritdoc} * @@ -310,6 +291,7 @@ public function createChargeGraphQL(PlanDetailsTransfer $payload): ResponseAcces mutation appSubscriptionCreate( $name: String!, $returnUrl: URL!, + $replacementBehavior: AppSubscriptionReplacementBehavior, $trialDays: Int, $test: Boolean, $lineItems: [AppSubscriptionLineItemInput!]! @@ -317,6 +299,7 @@ public function createChargeGraphQL(PlanDetailsTransfer $payload): ResponseAcces appSubscriptionCreate( name: $name, returnUrl: $returnUrl, + replacementBehavior: $replacementBehavior, trialDays: $trialDays, test: $test, lineItems: $lineItems @@ -335,6 +318,7 @@ public function createChargeGraphQL(PlanDetailsTransfer $payload): ResponseAcces $variables = [ 'name' => $payload->name, 'returnUrl' => $payload->returnUrl, + 'replacementBehavior' => 'APPLY_IMMEDIATELY', 'trialDays' => $payload->trialDays, 'test' => $payload->test, 'lineItems' => [ diff --git a/tests/Services/ApiHelperTest.php b/tests/Services/ApiHelperTest.php index 7ba213b8..a70f7407 100644 --- a/tests/Services/ApiHelperTest.php +++ b/tests/Services/ApiHelperTest.php @@ -150,31 +150,6 @@ public function testActivateCharge(): void $this->assertSame('Super Mega Plan', $data['name']); } - public function testCreateCharge(): void - { - // Create a shop - $shop = factory($this->model)->create(); - - // Response stubbing - $this->setApiStub(); - ApiStub::stubResponses(['post_recurring_application_charges']); - - // Build the details object - $transfer = new PlanDetailsTransfer(); - $transfer->name = 'Test'; - $transfer->price = 12.00; - $transfer->interval = PlanInterval::EVERY_30_DAYS()->toNative(); - $transfer->test = true; - $transfer->trialDays = 7; - - $data = $shop->apiHelper()->createCharge( - ChargeType::RECURRING(), - $transfer - ); - $this->assertInstanceOf(ResponseAccess::class, $data); - $this->assertSame('Basic Plan', $data['name']); - } - public function testGetWebhooks(): void { // Create a shop