1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Curler;
4:
5: use Psr\Http\Message\RequestInterface;
6: use OutOfRangeException;
7:
8: /**
9: * @api
10: */
11: interface CurlerPageInterface
12: {
13: /**
14: * Get a list of entities returned by the endpoint
15: *
16: * @return list<mixed>
17: */
18: public function getEntities(): array;
19:
20: /**
21: * Check if more data can be requested from the endpoint
22: */
23: public function hasNextRequest(): bool;
24:
25: /**
26: * Get a request to retrieve the next page of data from the endpoint
27: *
28: * Return a {@see CurlerPageRequestInterface} to propagate query changes to
29: * the next {@see CurlerPagerInterface::getPage()} call in array form.
30: *
31: * @return CurlerPageRequestInterface|RequestInterface
32: * @throws OutOfRangeException if no more data can be requested.
33: */
34: public function getNextRequest();
35: }
36: