Skip to content

Commit 98f8d94

Browse files
committed
Added statements()
1 parent 413b399 commit 98f8d94

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

src/Entity/Statement.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace SpojeNet\KbAccountsApi\Entity;
4+
5+
class Statement
6+
{
7+
public function __construct(
8+
public readonly \DateTimeImmutable $issued,
9+
public readonly int $sequenceNumber,
10+
public readonly int $pagesCount,
11+
public readonly int $statementId,
12+
public readonly bool $archive,
13+
) {
14+
}
15+
}

src/Entity/StatementsSelection.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace SpojeNet\KbAccountsApi\Entity;
4+
5+
use DateTimeImmutable;
6+
7+
class StatementsSelection
8+
{
9+
public function __construct(
10+
public readonly string $accountId,
11+
public readonly DateTimeImmutable $dateFrom,
12+
) {}
13+
}

src/KbClient.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
use SpojeNet\KbAccountsApi\Entity\ApplicationReq;
1616
use SpojeNet\KbAccountsApi\Entity\ClientReq;
1717
use SpojeNet\KbAccountsApi\Entity\ClientRes;
18+
use SpojeNet\KbAccountsApi\Entity\Statement;
19+
use SpojeNet\KbAccountsApi\Entity\StatementsSelection;
1820
use SpojeNet\KbAccountsApi\Entity\Token;
1921
use SpojeNet\KbAccountsApi\Entity\Tokens;
2022
use SpojeNet\KbAccountsApi\Entity\Transactions;
@@ -340,6 +342,23 @@ public function transactions(string $accessToken, TransactionSelection $selectio
340342
}
341343

342344

345+
/**
346+
* @throws KbClientException
347+
* @return Statement[]
348+
*/
349+
public function statements(string $accessToken, StatementsSelection $selection): array
350+
{
351+
$data = $this->sendAdaaRequest(
352+
accessToken: $accessToken,
353+
endpoint: "/accounts/{$selection->accountId}/statements",
354+
params: [
355+
'dateFrom' => $selection->dateFrom->format('Y-m-d\TH:i:s\Z'),
356+
],
357+
);
358+
359+
return array_map(static fn(array $item) => DtoMapper::map(Statement::class, $item), $data);
360+
}
361+
343362
/* Utilities */
344363

345364
/**

0 commit comments

Comments
 (0)