Skip to content

Commit

Permalink
Add new subscription card update method (#118)
Browse files Browse the repository at this point in the history
  • Loading branch information
alikorkmaz committed Feb 11, 2020
1 parent 1215114 commit 66a43b6
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

require dirname(__DIR__) . '/config.php';

$request = new \Iyzipay\Request\Subscription\SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest();
$request->setLocale("tr");
$request->setConversationId("123456789");
$request->setSubscriptionReferenceCode("7ad4cc50-c96c-45c6-a3f3-5f1db261e511");
$request->setCallBackUrl("https://www.callbackurl.com");
$result = \Iyzipay\Model\Subscription\SubscriptionCardUpdate::updateWithSubscriptionReferenceCode($request,Config::options());
print_r($result);
8 changes: 8 additions & 0 deletions src/Iyzipay/Model/Subscription/SubscriptionCardUpdate.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Iyzipay\IyzipayResource;
use Iyzipay\Model\Mapper\Subscription\SubscriptionCardUpdateMapper;
use Iyzipay\Request\Subscription\SubscriptionCardUpdateRequest;
use Iyzipay\Request\Subscription\SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest;


class SubscriptionCardUpdate extends IyzipayResource
Expand All @@ -21,6 +22,13 @@ public static function update(SubscriptionCardUpdateRequest $request, Options $o
return SubscriptionCardUpdateMapper::create($rawResult)->jsonDecode()->mapSubscriptionCardUpdate(new SubscriptionCardUpdate());
}

public static function updateWithSubscriptionReferenceCode(SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest $request, Options $options)
{
$uri = $options->getBaseUrl() . "/v2/subscription/card-update/checkoutform/initialize/with-subscription";
$rawResult = parent::httpClient()->post($uri, parent::getHttpHeadersV2($uri, $request, $options), $request->toJsonString());
return SubscriptionCardUpdateMapper::create($rawResult)->jsonDecode()->mapSubscriptionCardUpdate(new SubscriptionCardUpdate());
}

public function getToken()
{
return $this->token;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public function setCallbackUrl($callbackUrl)
{
$this->callbackUrl = $callbackUrl;
}

public function getCustomerReferenceCode()
{
return $this->customerReferenceCode ;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php

namespace Iyzipay\Request\Subscription;

use Iyzipay\JsonBuilder;
use Iyzipay\Request;

class SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest extends Request
{

private $subscriptionReferenceCode;
private $callbackUrl;

public function getCallbackUrl()
{
return $this->callbackUrl;
}

public function setCallbackUrl($callbackUrl)
{
$this->callbackUrl = $callbackUrl;
}

public function getSubscriptionReferenceCode()
{
return $this->subscriptionReferenceCode ;
}

public function setSubscriptionReferenceCode($subscriptionReferenceCode)
{
$this->subscriptionReferenceCode = $subscriptionReferenceCode;
}

public function getJsonObject()
{
return JsonBuilder::fromJsonObject(parent::getJsonObject())
->add("locale", $this->getLocale())
->add("conversationId", $this->getConversationId())
->add("callbackUrl", $this->getCallbackUrl())
->add("subscriptionReferenceCode", $this->getSubscriptionReferenceCode())
->getObject();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Iyzipay\Model\Subscription\SubscriptionCardUpdate;
use Iyzipay\Request\Subscription\SubscriptionCardUpdateRequest;
use Iyzipay\Request\Subscription\SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest;
use Iyzipay\Tests\IyzipayResourceTestCase;

class SubscriptionCardUpdateTest extends IyzipayResourceTestCase
Expand All @@ -14,4 +15,11 @@ public function test_should_update_subscription_customer_card()
$cardUpdate = SubscriptionCardUpdate::update(new SubscriptionCardUpdateRequest(), $this->options);
$this->verifyResource($cardUpdate);
}

public function test_should_update_card_with_subscription_reference_code()
{
$this->expectHttpPost();
$cardUpdate = SubscriptionCardUpdate::updateWithSubscriptionReferenceCode(new SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest(), $this->options);
$this->verifyResource($cardUpdate);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

namespace Iyzipay\Tests\Request\Subscription;

use Iyzipay\Request\Subscription\SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest;
use Iyzipay\Tests\TestCase;
use Iyzipay\Model\Locale;

class SubscriptionCardUpdateWithSubscriptionReferenceCodeRequestTest extends TestCase
{
public function test_should_get_json_object()
{
$request = $this->prepareRequest();
$jsonObject = $request->getJsonObject();
$this->assertEquals(Locale::TR, $jsonObject["locale"]);
$this->assertEquals("123456789", $jsonObject["conversationId"]);
$this->assertEquals("7ad4cc50-c96c-45c6-a3f3-5f1db261e511", $jsonObject["subscriptionReferenceCode"]);;
$this->assertEquals("https://www.callbackurl.com", $jsonObject["callbackUrl"]);
}

public function test_should_get_json_string()
{
$request = $this->prepareRequest();
$json = '{
"callbackUrl": "https://www.callbackurl.com",
"conversationId": "123456789",
"subscriptionReferenceCode": "7ad4cc50-c96c-45c6-a3f3-5f1db261e511",
"locale": "tr"
}';

$this->assertJson($request->toJsonString());
$this->assertJsonStringEqualsJsonString($json, $request->toJsonString());
}

private function prepareRequest()
{
$request = new SubscriptionCardUpdateWithSubscriptionReferenceCodeRequest();
$request->setLocale("tr");
$request->setConversationId("123456789");
$request->setSubscriptionReferenceCode("7ad4cc50-c96c-45c6-a3f3-5f1db261e511");
$request->setCallBackUrl("https://www.callbackurl.com");
return $request;
}
}

0 comments on commit 66a43b6

Please sign in to comment.