Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ok reporting #187

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,5 @@ build/
composer.lock
composer.phar
vendor/*

.phpunit.result.cache
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
}
],
"require": {
"php": ">=5.3.0",
"php": ">=7.4.0",
"ext-curl": "*"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"phpunit/phpunit": "~9.6",
"satooshi/php-coveralls": "~0.6.1"
},
"autoload": {
Expand Down
16 changes: 16 additions & 0 deletions samples/reporting_scroll_transaction.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

require_once('config.php');

function reportingScrollTransaction(): void {
$request = new \Iyzipay\Request\ReportingScrollTransactionRequest();
$request->setConversationId('1234567890');
$request->setTransactionDate('2023-08-17');
$request->setDocumentScrollVoSortingOrder('ASC');
$request->setLastId('1689853839161');

$result = \Iyzipay\Model\ReportingScrollTransaction::create($request, Config::options());
print_r($result);
}

reportingScrollTransaction();
12 changes: 12 additions & 0 deletions src/Iyzipay/DefaultHttpClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,18 @@ public function put($url, $header, $content)
));
}

public function patch($url, $header, $content)
{
return $this->curl->exec($url, array(
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => $content,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_VERBOSE => false,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $header
));
}

public function delete($url, $header, $content = null)
{
return $this->curl->exec($url, array(
Expand Down
3 changes: 2 additions & 1 deletion src/Iyzipay/IyzipayResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ protected static function getHttpHeaders(Request $request, Options $options)
return $header;
}

protected static function getHttpHeadersV2($uri, Request $request = null, Options $options)
protected static function getHttpHeadersV2($uri, Request $request = null, Options $options, bool $addRandom = false)
{
$header = array(
"Accept: application/json",
Expand All @@ -36,6 +36,7 @@ protected static function getHttpHeadersV2($uri, Request $request = null, Option

$rnd = uniqid();
array_push($header, "Authorization: " . self::prepareAuthorizationStringV2($uri, $request, $options, $rnd));
$addRandom && array_push($header, "x-iyzi-rnd: " . $rnd);
array_push($header, "x-iyzi-client-version: " . "iyzipay-php-2.0.43");

return $header;
Expand Down
33 changes: 33 additions & 0 deletions src/Iyzipay/Model/Mapper/ReportingScrollTransactionMapper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace Iyzipay\Model\Mapper;

use Iyzipay\Model\ReportingScrollTransaction;

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

public function mapReportingScrollTransactionFrom(ReportingScrollTransaction $transaction, object $jsonObject): ReportingScrollTransaction {
parent::mapResourceFrom($transaction, $jsonObject);

if (isset($jsonObject->transactionDate)) {
$transaction->setTransactionDate($jsonObject->transactionDate);
}

if (isset($jsonObject->documentScrollVoSortingOrder)) {
$transaction->setDocumentScrollVoSortingOrder($jsonObject->documentScrollVoSortingOrder);
}

if (isset($jsonObject->lastId)) {
$transaction->setLastId($jsonObject->lastId);
}

return $transaction;
}

public function mapReportingScrollTransaction(ReportingScrollTransaction $transaction): ReportingScrollTransaction {
return $this->mapReportingScrollTransactionFrom($transaction, $this->jsonObject);
}
}
46 changes: 46 additions & 0 deletions src/Iyzipay/Model/ReportingScrollTransaction.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?php

namespace Iyzipay\Model;

use Iyzipay\Options;
use Iyzipay\IyzipayResource;
use Iyzipay\Model\Mapper\ReportingScrollTransactionMapper;
use Iyzipay\Request\ReportingScrollTransactionRequest;
use Iyzipay\RequestStringBuilder;

class ReportingScrollTransaction extends IyzipayResource {
private string $documentScrollVoSortingOrder;
private string $transactionDate;
private string $lastId;

public static function create(ReportingScrollTransactionRequest $request, Options $options): ReportingScrollTransaction {
$uri = $options->getBaseUrl() . '/v2/reporting/payment/scroll-transactions' . RequestStringBuilder::requestToStringQuery($request, 'reportingScrollTransaction');
$rawResult = parent::httpClient()->getV2($uri, parent::getHttpHeadersV2($uri, null, $options));
return ReportingScrollTransactionMapper::create($rawResult)->jsonDecode()->mapReportingScrollTransaction(new ReportingScrollTransaction());
}

public function getDocumentScrollVoSortingOrder(): string {
return $this->documentScrollVoSortingOrder;
}

public function setDocumentScrollVoSortingOrder(string $documentScrollVoSortingOrder): void {
$this->documentScrollVoSortingOrder = $documentScrollVoSortingOrder;
}

public function getTransactionDate(): string {
return $this->transactionDate;
}

public function setTransactionDate(string $transactionDate): void {
$this->transactionDate = $transactionDate;
}

public function getLastId(): string {
return $this->lastId;
}

public function setLastId(string $lastId): void {
$this->lastId = $lastId;
}

}
2 changes: 2 additions & 0 deletions src/Iyzipay/Model/Status.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ class Status
{
const SUCCESS = "success";
const FAILURE = "failure";
const ACTIVE = "ACTIVE";
const PASSIVE = "PASSIVE";
}
44 changes: 44 additions & 0 deletions src/Iyzipay/Request/ReportingScrollTransactionRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

namespace Iyzipay\Request;

use Iyzipay\JsonBuilder;
use Iyzipay\Request;

class ReportingScrollTransactionRequest extends Request {
private string $documentScrollVoSortingOrder;
private string $transactionDate;
private string $lastId;

public function getDocumentScrollVoSortingOrder(): string {
return $this->documentScrollVoSortingOrder;
}

public function setDocumentScrollVoSortingOrder(string $documentScrollVoSortingOrder): void {
$this->documentScrollVoSortingOrder = $documentScrollVoSortingOrder;
}

public function getTransactionDate(): string {
return $this->transactionDate;
}

public function setTransactionDate(string $transactionDate): void {
$this->transactionDate = $transactionDate;
}

public function getLastId(): string {
return $this->lastId;
}

public function setLastId(string $lastId): void {
$this->lastId = $lastId;
}

public function getJsonObject(): array {
return JsonBuilder::fromJsonObject(parent::getJsonObject())
->add('documentScrollVoSortingOrder', $this->getDocumentScrollVoSortingOrder())
->add('transactionDate', $this->getTransactionDate())
->add('lastId', $this->getLastId())
->getObject();
}
}
18 changes: 18 additions & 0 deletions src/Iyzipay/RequestStringBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@ public static function requestToStringQuery(Request $request, $type = null)
$stringQuery .= "&locale=" . $request->getLocale();
}

if ($type == 'locale') {
$stringQuery = "?locale=" . $request->getLocale();
}

if($type == 'defaultParams' ) {
if($request->getConversationId()) {
$stringQuery = "?conversationId=" . $request->getConversationId();
Expand All @@ -175,6 +179,20 @@ public static function requestToStringQuery(Request $request, $type = null)
}
}

if($type == 'reportingScrollTransaction') {
if($request->getDocumentScrollVoSortingOrder()) {
$stringQuery = '?documentScrollVoSortingOrder=' . $request->getDocumentScrollVoSortingOrder();
}

if($request->getTransactionDate()) {
$stringQuery .= "&transactionDate=" . $request->getTransactionDate();
}

if($request->getLastId()) {
$stringQuery .= '&lastId=' . $request->getLastId();
}
}

if($type == 'subscriptionItems' ) {
if ($request->getPage()) {
$stringQuery = "?page=" . $request->getPage();
Expand Down
4 changes: 2 additions & 2 deletions tests/Iyzipay/Tests/IyzipayResourceTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class IyzipayResourceTestCase extends TestCase
"conversationId":"123456"
}';

public function setUp()
public function setUp(): void
{
parent::setUp();

Expand Down Expand Up @@ -83,4 +83,4 @@ public function test_should_check_http_client_not_empty()
{
$this->assertNotEmpty($this->httpClient);
}
}
}
22 changes: 22 additions & 0 deletions tests/Iyzipay/Tests/Model/ReportingScrollTransactionTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace Iyzipay\Tests\Model;

use Iyzipay\Model\ReportingScrollTransaction;
use Iyzipay\Request\ReportingScrollTransactionRequest;
use Iyzipay\Tests\IyzipayResourceTestCase;

class ReportingScrollTransactionTest extends IyzipayResourceTestCase {
public function testShouldReportingScrollTransaction(): void {

$request = new ReportingScrollTransactionRequest();
$request->setConversationId('1234567890');
$request->setTransactionDate('2023-08-17');
$request->setDocumentScrollVoSortingOrder('ASC');
$request->setLastId('1689853839161');

$this->expectHttpGetV2();
$transaction = ReportingScrollTransaction::create($request, $this->options);
$this->verifyResource($transaction);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

namespace Iyzipay\Tests\Request;

use Iyzipay\Request\ReportingScrollTransactionRequest;
use Iyzipay\Tests\TestCase;

class ReportingScrollTransactionRequestTest extends TestCase {
public function testShouldGetJsonObject(): void {
$request = $this->prepareRequest();
$jsonObject = $request->getJsonObject();

$this->assertEquals('123456789', $jsonObject['conversationId']);
$this->assertEquals('2023-08-17', $jsonObject['transactionDate']);
$this->assertEquals('ASC', $jsonObject['documentScrollVoSortingOrder']);
$this->assertEquals('1689853839161', $jsonObject['lastId']);
}

private function prepareRequest(): ReportingScrollTransactionRequest {
$request = new ReportingScrollTransactionRequest();
$request->setConversationId('123456789');
$request->setTransactionDate('2023-08-17');
$request->setDocumentScrollVoSortingOrder('ASC');
$request->setLastId('1689853839161');
return $request;
}
}
7 changes: 4 additions & 3 deletions tests/Iyzipay/Tests/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

namespace Iyzipay\Tests;

use PHPUnit\Framework\TestCase as BaseTestCase;
use Iyzipay\Options;

class TestCase extends \PHPUnit_Framework_TestCase
class TestCase extends BaseTestCase
{
protected $options;

protected function setUp()
protected function setUp(): void
{
$this->options = new Options();
$this->options->setApiKey("apiKey");
Expand All @@ -33,4 +34,4 @@ public function retrieveJsonFile($file)
{
return file_get_contents(__DIR__ . '/mock/' . $file, true);
}
}
}
Loading