WebflowApiCollectionItem.php 989 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Http\WebflowApi;
  3. use App\Entity\AbstractWebflowCollectionItem;
  4. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  5. class WebflowApiCollectionItem extends AbstractWebflowApiField {
  6. protected function getLoadScope(): string
  7. {
  8. return sprintf('collections/%s/items/%s', $this->data['_cid'], $this->data['_id']);
  9. }
  10. public static function byId(AbstractWebflowApiClient $wfapi, string $id, array $options = []): AbstractWebflowApiField
  11. {
  12. $new = parent::byId($wfapi, $id);
  13. $new->data['_cid'] = $options['_cid'] ?? null;
  14. return $new;
  15. }
  16. public function load(bool $reload = false): self {
  17. $oldData = $this->data;
  18. parent::load($reload)->data = array_pop($this->data['items']);
  19. if (empty($this->data))
  20. throw new NotFoundHttpException(sprintf("Item with ID %s (cID %s) is not found", $oldData['_id'], $oldData['_cid']));
  21. return $this;
  22. }
  23. }