Интерфейсы

CanGetItem

use Pranju\Bitrix24\Contracts\Repositories\CanGetItem;

if ($repository instanceof CanGetItem) {
  $attributes = $repository->get(1);
  // Или
  $attributes = $repository->getReceivedItemAttributes(
    $repository->makeGetCommand(1)->call()
  );
}

CanCreateItem

use Pranju\Bitrix24\Contracts\Repositories\CanCreateItem;

$attributes = [
  'TITLE' => 'Lorem ipsum',
];

if ($repository instanceof CanCreateItem) {
  $id = $repository->create($attributes);
  // Или
  $id = $repository->getCreatedItemId(
    $repository->makeCreateCommand($attributes)->call()
  );
}

CanUpdateItem

CanDeleteItem

CanSelectItems

Хоть и все репозитории следуют определённому интерфейсу, они могут иметь некоторые отклонения в формате передаваемых значений.

Например методы get и makeGetCommand в Pranju\Bitrix24\Repositories\Crm\CategoryRepository требуют на вход не просто id категории, а строку вида {entityTypeId}:{id}. Это связано с особенностями REST API Битрикс24.

Чаще всего, Eloquent-обёртка будет выполнять все подобные разночтения за вас, чтобы избежать путаницы, но в случае низкоуровневого использования пакета нужно будет самостоятельно читать комментарии методов, чтобы избежать ошибок.

Last updated