for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace LauLamanApps\IzettleApi\Client\Finance;
use DateTime;
use LauLamanApps\IzettleApi\API\Finance\AccountTransaction;
use LauLamanApps\IzettleApi\API\Finance\Enum\TransactionType;
use Psr\Http\Message\ResponseInterface;
use Ramsey\Uuid\Uuid;
final class AccountTransactionParser
{
public static function createFromResponse(ResponseInterface $response)
$data = json_decode($response->getBody()->getContents(), true);
return self::parseArray($data['data']);
}
public static function parseArray(array $data): array
$array = [];
foreach ($data as $accountTransaction) {
$array[] = self::parse($accountTransaction);
return $array;
public static function parse(array $accountTransaction): AccountTransaction
return new AccountTransaction(
new DateTime($accountTransaction['timestamp']),
$accountTransaction['amount'],
TransactionType::get($accountTransaction['originatorTransactionType']),
Uuid::fromString($accountTransaction['originatingTransactionUuid'])
);