Skip to content

Commit 2ac8e65

Browse files
authored
Merge pull request #80 from php-api-clients/iterate-over-checks
Iterate over checks
2 parents 595707f + 7f535ca commit 2ac8e65

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

composer.json

+4
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@
5151
"sort-packages": true,
5252
"platform": {
5353
"php": "7.3.3"
54+
},
55+
"allow-plugins": {
56+
"ocramius/package-versions": true,
57+
"localheinz/composer-normalize": true
5458
}
5559
},
5660
"extra": {

src/CommandBus/Handler/Repository/Commit/ChecksHandler.php

+12-13
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,33 @@
33
namespace ApiClients\Client\Github\CommandBus\Handler\Repository\Commit;
44

55
use ApiClients\Client\Github\CommandBus\Command\Repository\Commit\ChecksCommand;
6-
use ApiClients\Client\Github\CommandBus\Command\Repository\Commit\StatusesCommand;
76
use ApiClients\Client\Github\Resource\Repository\Commit\CheckInterface;
8-
use ApiClients\Client\Github\Resource\Repository\Commit\StatusInterface;
97
use ApiClients\Client\Github\Service\IteratePagesService;
108
use ApiClients\Foundation\Hydrator\Hydrator;
11-
use ApiClients\Tools\Services\Client\FetchAndIterateService;
129
use function ApiClients\Tools\Rx\observableFromArray;
1310
use React\Promise\PromiseInterface;
1411
use function React\Promise\resolve;
12+
use function igorw\get_in;
1513

1614
final class ChecksHandler
1715
{
1816
/**
19-
* @var FetchAndIterateService
17+
* @var IteratePagesService
2018
*/
21-
private $fetchAndIterateService;
19+
private $iteratePagesService;
2220

2321
/**
2422
* @var Hydrator
2523
*/
2624
private $hydrator;
2725

2826
/**
29-
* @param FetchAndIterateService $fetchAndIterateService
27+
* @param IteratePagesService $iteratePagesService
3028
* @param Hydrator $hydrator
3129
*/
32-
public function __construct(FetchAndIterateService $fetchAndIterateService, Hydrator $hydrator)
30+
public function __construct(IteratePagesService $iteratePagesService, Hydrator $hydrator)
3331
{
34-
$this->fetchAndIterateService = $fetchAndIterateService;
32+
$this->iteratePagesService = $iteratePagesService;
3533
$this->hydrator = $hydrator;
3634
}
3735

@@ -42,11 +40,12 @@ public function __construct(FetchAndIterateService $fetchAndIterateService, Hydr
4240
public function handle(ChecksCommand $command): PromiseInterface
4341
{
4442
return resolve(
45-
$this->fetchAndIterateService->iterate(
46-
$command->getCommit()->url() . '/check-runs',
47-
'check_runs',
48-
CheckInterface::HYDRATE_CLASS
49-
)
43+
$this->iteratePagesService->iterate($command->getCommit()->url() . '/check-runs',)
44+
->flatMap(function ($checkRuns) {
45+
return observableFromArray(get_in($checkRuns, ['check_runs'], []));
46+
})->map(function ($checkRun) {
47+
return $this->hydrator->hydrate(CheckInterface::HYDRATE_CLASS, $checkRun);
48+
})
5049
);
5150
}
5251
}

0 commit comments

Comments
 (0)