Skip to content

Commit

Permalink
Merge 4a71b08 into c69fbd0
Browse files Browse the repository at this point in the history
  • Loading branch information
mehmetselim committed Oct 15, 2019
2 parents c69fbd0 + 4a71b08 commit 91edf1d
Show file tree
Hide file tree
Showing 11 changed files with 355 additions and 0 deletions.
16 changes: 16 additions & 0 deletions samples/settlement_to_balance.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

require_once('config.php');

# create request class
$request = new \Iyzipay\Request\CreateSettlementToBalanceRequest();
$request->setSubMerchantKey("11654127");
$request->setCallbackUrl("https://www.callback");
$request->setPrice("0.1");

# make request
$settlementToBalance = \Iyzipay\Model\SettlementToBalance::create($request, Config::options());

echo '<pre>';
# print result
print_r($settlementToBalance);
25 changes: 25 additions & 0 deletions src/Iyzipay/Model/Mapper/SettlementToBalanceMapper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace Iyzipay\Model\Mapper;

use Iyzipay\Model\SettlementToBalance;

class SettlementToBalanceMapper extends SettlementToBalanceResourceMapper
{
public static function create($rawResult = null)
{
return new SettlementToBalanceMapper($rawResult);
}

public function mapSettlementToBalanceFrom(SettlementToBalance $settlementToBalance, $jsonObject)
{
parent::mapSettlementToBalanceResourceFrom($settlementToBalance, $jsonObject);
return $settlementToBalance;
}

public function mapSettlementToBalance(SettlementToBalance $settlementToBalance)
{

return $this->mapSettlementToBalanceFrom($settlementToBalance, $this->jsonObject);
}
}
35 changes: 35 additions & 0 deletions src/Iyzipay/Model/Mapper/SettlementToBalanceResourceMapper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace Iyzipay\Model\Mapper;

use Iyzipay\Model\SettlementToBalanceResource;

class SettlementToBalanceResourceMapper extends IyzipayResourceMapper
{
public static function create($rawResult = null)
{
return new SettlementToBalanceResourceMapper($rawResult);
}

public function mapSettlementToBalanceResourceFrom(SettlementToBalanceResource $settlementToBalanceResource, $jsonObject)
{
parent::mapResourceFrom($settlementToBalanceResource, $jsonObject);

if (isset($jsonObject->url)) {
$settlementToBalanceResource->setUrl($jsonObject->url);
}
if (isset($jsonObject->token)) {
$settlementToBalanceResource->setToken($jsonObject->token);
}
if (isset($jsonObject->isSettingsAllTime)) {
$settlementToBalanceResource->setIsSettingsAllTime($jsonObject->isSettingsAllTime);
}

return $settlementToBalanceResource;
}

public function mapSettlementToBalanceResource(SettlementToBalanceResource $settlementToBalanceResource)
{
return $this->mapSettlementToBalanceResourceFrom($settlementToBalanceResource, $this->jsonObject);
}
}
17 changes: 17 additions & 0 deletions src/Iyzipay/Model/SettlementToBalance.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace Iyzipay\Model;

use Iyzipay\Model\Mapper\SettlementToBalanceMapper;
use Iyzipay\Options;
use Iyzipay\Request\CreateSettlementToBalanceRequest;

class SettlementToBalance extends SettlementToBalanceResource
{
public static function create(CreateSettlementToBalanceRequest $request, Options $options)
{
$rawResult = parent::httpClient()->post($options->getBaseUrl() . "/payment/settlement-to-balance/init", parent::getHttpHeaders($request, $options), $request->toJsonString());

return SettlementToBalanceMapper::create($rawResult)->jsonDecode()->mapSettlementToBalance(new SettlementToBalance());
}
}
42 changes: 42 additions & 0 deletions src/Iyzipay/Model/SettlementToBalanceResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

namespace Iyzipay\Model;

use Iyzipay\IyzipayResource;

class SettlementToBalanceResource extends IyzipayResource
{
private $url;
private $token;
private $isSettingsAllTime;

public function getUrl()
{
return $this->url;
}

public function setUrl($url)
{
$this->url = $url;
}

public function getToken()
{
return $this->token;
}

public function setToken($token)
{
$this->token = $token;
}

public function getIsSettingsAllTime()
{
return $this->isSettingsAllTime;
}

public function setIsSettingsAllTime($isSettingsAllTime)
{
$this->isSettingsAllTime = $isSettingsAllTime;
}
}
63 changes: 63 additions & 0 deletions src/Iyzipay/Request/CreateSettlementToBalanceRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

namespace Iyzipay\Request;

use Iyzipay\JsonBuilder;
use Iyzipay\Request;
use Iyzipay\RequestStringBuilder;

class CreateSettlementToBalanceRequest extends Request
{
private $subMerchantKey;
private $callbackUrl;
private $price;

public function getSubMerchantKey()
{
return $this->subMerchantKey;
}

public function setSubMerchantKey($subMerchantKey)
{
$this->subMerchantKey = $subMerchantKey;
}

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

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

public function getPrice()
{
return $this->price;
}

public function setPrice($price)
{
$this->price = $price;
}

public function getJsonObject()
{
return JsonBuilder::fromJsonObject(parent::getJsonObject())
->add("subMerchantKey", $this->getSubMerchantKey())
->add("callbackUrl", $this->getCallbackUrl())
->addPrice("price", $this->getPrice())
->getObject();
}

public function toPKIRequestString()
{
return RequestStringBuilder::create()
->appendSuper(parent::toPKIRequestString())
->append("subMerchantKey", $this->getSubMerchantKey())
->append("callbackUrl", $this->getCallbackUrl())
->appendPrice("price", $this->getPrice())
->getRequestString();
}
}
34 changes: 34 additions & 0 deletions tests/Iyzipay/Tests/Model/Mapper/SettlementToBalanceMapperTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

namespace Iyzipay\Tests\Model\Mapper;

use Iyzipay\Model\Mapper\RefundToBalanceMapper;
use Iyzipay\Model\Mapper\SettlementToBalanceMapper;
use Iyzipay\Model\RefundToBalance;
use Iyzipay\Model\SettlementToBalance;
use Iyzipay\Tests\TestCase;

class SettlementToBalanceMapperTest extends TestCase
{
public function test_should_map_settlement_to_balance_mapper()
{
$json = $this->retrieveJsonFile("settlement_to_balance.json");

$settlementToBalance = SettlementToBalanceMapper::create($json)->jsonDecode()->mapSettlementToBalance(new SettlementToBalance());

$this->assertNotEmpty($settlementToBalance);
$this->assertEquals("123456", $settlementToBalance->getToken());
$this->assertEquals("https://url", $settlementToBalance->getUrl());
$this->assertEquals("434343", $settlementToBalance->getIsSettingsAllTime());
$this->assertEquals("failure", $settlementToBalance->getStatus());
$this->assertEquals("10000", $settlementToBalance->getErrorCode());
$this->assertEquals("error_message", $settlementToBalance->getErrorMessage());
$this->assertEquals("ERROR_GROUP", $settlementToBalance->getErrorGroup());
$this->assertEquals("1458545234852", $settlementToBalance->getSystemTime());
$this->assertEquals("tr", $settlementToBalance->getLocale());
$this->assertEquals("123456", $settlementToBalance->getConversationId());
$this->assertJson($settlementToBalance->getRawResult());
$this->assertJsonStringEqualsJsonString($json, $settlementToBalance->getRawResult());

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace Iyzipay\Tests\Model\Mapper;

use Iyzipay\Model\Mapper\RefundToBalanceMapper;
use Iyzipay\Model\Mapper\SettlementToBalanceMapper;
use Iyzipay\Model\Mapper\SettlementToBalanceResourceMapper;
use Iyzipay\Model\RefundToBalance;
use Iyzipay\Model\SettlementToBalance;
use Iyzipay\Tests\TestCase;

class SettlementToBalanceResourceMapperTest extends TestCase
{
public function test_should_map_settlement_to_balance_resource()
{
$json = $this->retrieveJsonFile("settlement_to_balance.json");

$settlementToBalance = SettlementToBalanceResourceMapper::create($json)->jsonDecode()->mapSettlementToBalanceResource(new SettlementToBalance());

$this->assertNotEmpty($settlementToBalance);
$this->assertEquals("123456", $settlementToBalance->getToken());
$this->assertEquals("https://url", $settlementToBalance->getUrl());
$this->assertEquals("434343", $settlementToBalance->getIsSettingsAllTime());
$this->assertEquals("failure", $settlementToBalance->getStatus());
$this->assertEquals("10000", $settlementToBalance->getErrorCode());
$this->assertEquals("error_message", $settlementToBalance->getErrorMessage());
$this->assertEquals("ERROR_GROUP", $settlementToBalance->getErrorGroup());
$this->assertEquals("1458545234852", $settlementToBalance->getSystemTime());
$this->assertEquals("tr", $settlementToBalance->getLocale());
$this->assertEquals("123456", $settlementToBalance->getConversationId());
$this->assertJson($settlementToBalance->getRawResult());
$this->assertJsonStringEqualsJsonString($json, $settlementToBalance->getRawResult());

}
}
19 changes: 19 additions & 0 deletions tests/Iyzipay/Tests/Model/SettlementToBalanceTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace Iyzipay\Tests\Model;

use Iyzipay\Model\SettlementToBalance;
use Iyzipay\Request\CreateSettlementToBalanceRequest;
use Iyzipay\Tests\IyzipayResourceTestCase;

class SettlementToBalanceTest extends IyzipayResourceTestCase
{
public function test_should_settlement_to_balance()
{
$this->expectHttpPost();

$settlementToBalance = SettlementToBalance::create(new CreateSettlementToBalanceRequest(), $this->options);

$this->verifyResource($settlementToBalance);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

namespace Iyzipay\Tests\Request;

use Iyzipay\Request\CreateSettlementToBalanceRequest;
use Iyzipay\Tests\TestCase;

class CreateSettlementToBalanceRequestTest extends TestCase
{
public function test_should_get_json_object()
{
$request = $this->prepareRequest();
$jsonObject = $request->getJsonObject();


$this->assertEquals("123456", $jsonObject["subMerchantKey"]);
$this->assertEquals("https://callback", $jsonObject["callbackUrl"]);
$this->assertEquals("0.01", $jsonObject["price"]);
}

public function test_should_convert_to_pki_request_string()
{
$request = $this->prepareRequest();

$str = "[subMerchantKey=123456," .
"callbackUrl=https://callback,".
"price=0.01]";


$this->assertEquals($str, $request->toPKIRequestString());
}

public function test_should_get_json_string()
{
$request = $this->prepareRequest();

$json = '
{
"subMerchantKey":"123456",
"callbackUrl":"https://callback",
"price":"0.01"
}';

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

private function prepareRequest()
{
$request = new CreateSettlementToBalanceRequest();
$request->setSubMerchantKey("123456");
$request->setCallbackUrl("https://callback");
$request->setPrice("0.01");
return $request;
}
}
12 changes: 12 additions & 0 deletions tests/Iyzipay/Tests/mock/settlement_to_balance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"token":"123456",
"url":"https://url",
"isSettingsAllTime": "434343",
"status": "failure",
"errorCode": 10000,
"errorMessage": "error_message",
"errorGroup": "ERROR_GROUP",
"locale": "tr",
"systemTime": "1458545234852",
"conversationId": "123456"
}

0 comments on commit 91edf1d

Please sign in to comment.