categoryRepository = $categoryRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; $this->sortOrderBuilder = $sortOrderBuilder; } /** * Get active categories. * * @return \Plumrocket\CookieConsent\Api\Data\CategoryInterface[] */ public function get(): array { if (null === $this->categories) { $this->searchCriteriaBuilder->addFilter('status', 1); $this->searchCriteriaBuilder->addSortOrder( $this->sortOrderBuilder ->setField(CategoryInterface::SORT_ORDER) ->setAscendingDirection() ->create() ); $this->searchCriteriaBuilder->addSortOrder( $this->sortOrderBuilder ->setField(CategoryInterface::CREATED_AT) ->setAscendingDirection() ->create() ); // During installation all categories will have same created_at // so order by id keep right order for this case $this->searchCriteriaBuilder->addSortOrder( $this->sortOrderBuilder ->setField(CategoryResource::ID_FIELD_NAME) ->setAscendingDirection() ->create() ); $this->categories = $this->categoryRepository->getList($this->searchCriteriaBuilder->create())->getItems(); } return $this->categories; } }