first commit

This commit is contained in:
2025-04-27 04:02:46 +02:00
commit 05e8cca347
47 changed files with 2723 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
<?php
namespace Anikeen\Id\Helpers;
use Anikeen\Id\Result;
use stdClass;
class Paginator
{
/**
* Next desired action (first, after, before).
*/
public ?string $action = null;
/**
* AnikeenId response pagination cursor.
*/
private ?stdClass $pagination;
/**
* Constructor.
*
* @param null|stdClass $pagination AnikeenId response pagination cursor
*/
public function __construct(?stdClass $pagination = null)
{
$this->pagination = $pagination;
}
/**
* Create Paginator from Result object.
*/
public static function from(Result $result): self
{
return new self($result->pagination);
}
/**
* Return the current active cursor.
*/
public function cursor(): string
{
return $this->pagination->cursor;
}
/**
* Set the Paginator to fetch the next set of results.
*/
public function first(): self
{
$this->action = 'first';
return $this;
}
/**
* Set the Paginator to fetch the first set of results.
*/
public function next(): self
{
$this->action = 'after';
return $this;
}
/**
* Set the Paginator to fetch the last set of results.
*/
public function back(): self
{
$this->action = 'before';
return $this;
}
}