mirror of
https://git.yoomoney.ru/scm/sdk/yookassa-sdk-php.git
synced 2026-08-20 01:50:26 +00:00
cbcdbc8ae1
Отказ от поддержки PHP < 8 Изменена структура файлов Переработана логика работы с моделями Добавлено использование валидатора данных в моделях Массивы объектов заменены на объекты-коллекции
92 lines
3.2 KiB
PHP
92 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace YooKassa\Request;
|
|
|
|
use YooKassa\Common\AbstractObject;
|
|
use YooKassa\Validator\Constraints as Assert;
|
|
use YooKassa\Common\ListObjectInterface;
|
|
|
|
/**
|
|
* Абстрактный класс для объектов, содержащих список объектов-моделей в ответе на запрос.
|
|
*
|
|
* @category Class
|
|
* @package YooKassa\Request
|
|
* @author cms@yoomoney.ru
|
|
* @link https://yookassa.ru/developers/api
|
|
*
|
|
* @property string $type Формат выдачи результатов запроса. Возможное значение: `list` (список).
|
|
* @property string $nextCursor Указатель на следующий фрагмент списка. Обязательный параметр, если размер списка больше размера выдачи (`limit`) и конец выдачи не достигнут.
|
|
*/
|
|
abstract class AbstractListResponse extends AbstractObject
|
|
{
|
|
/**
|
|
* Формат выдачи результатов запроса. Возможное значение: `list` (список).
|
|
*
|
|
* @var string
|
|
*/
|
|
#[Assert\Type('string')]
|
|
#[Assert\Choice(['list'])]
|
|
protected string $_type = 'list';
|
|
|
|
/**
|
|
* Указатель на следующий фрагмент списка. Обязательный параметр, если размер списка больше размера выдачи (`limit`) и конец выдачи не достигнут.
|
|
*
|
|
* @var string|null
|
|
*/
|
|
#[Assert\Type('string')]
|
|
protected ?string $_next_cursor = null;
|
|
|
|
/**
|
|
* @param iterable $sourceArray
|
|
* @return void
|
|
*/
|
|
public function fromArray(iterable $sourceArray): void
|
|
{
|
|
if (!empty($sourceArray['type'])) {
|
|
$this->_type = $this->validatePropertyValue('_type', $sourceArray['type']);
|
|
}
|
|
if (!empty($sourceArray['items'])) {
|
|
$this->_items = $this->validatePropertyValue('_items', $sourceArray['items']);
|
|
}
|
|
if (!empty($sourceArray['next_cursor'])) {
|
|
$this->_next_cursor = $this->validatePropertyValue('_next_cursor', $sourceArray['next_cursor']);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Возвращает формат выдачи результатов запроса.
|
|
*
|
|
* @return string|null
|
|
*/
|
|
public function getType(): ?string
|
|
{
|
|
return $this->_type;
|
|
}
|
|
|
|
/**
|
|
* Возвращает токен следующей страницы, если он задан, или null.
|
|
*
|
|
* @return null|string Токен следующей страницы
|
|
*/
|
|
public function getNextCursor(): ?string
|
|
{
|
|
return $this->_next_cursor;
|
|
}
|
|
|
|
/**
|
|
* Проверяет, имеется ли в ответе токен следующей страницы.
|
|
*
|
|
* @return bool True если токен следующей страницы есть, false если нет
|
|
*/
|
|
public function hasNextCursor(): bool
|
|
{
|
|
return null !== $this->_next_cursor;
|
|
}
|
|
|
|
/**
|
|
* Возвращает список объектов в ответе на запрос
|
|
*
|
|
* @return ListObjectInterface
|
|
*/
|
|
abstract public function getItems(): ListObjectInterface;
|
|
} |