bookmarkRepository = $bookmarkRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; $this->filterBuilder = $filterBuilder; $this->userContext = $userContext; } /** * {@inheritdoc} */ public function loadByNamespace($namespace) { $userIdFilter = $this->filterBuilder ->setField('user_id') ->setConditionType('eq') ->setValue($this->userContext->getUserId()) ->create(); $namespaceFilter = $this->filterBuilder ->setField('namespace') ->setConditionType('eq') ->setValue($namespace) ->create(); $this->searchCriteriaBuilder->addFilters([$userIdFilter]); $this->searchCriteriaBuilder->addFilters([$namespaceFilter]); $searchCriteria = $this->searchCriteriaBuilder->create(); $searchResults = $this->bookmarkRepository->getList($searchCriteria); return $searchResults; } /** * {@inheritdoc} */ public function getByIdentifierNamespace($identifier, $namespace) { $userIdFilter = $this->filterBuilder ->setField('user_id') ->setConditionType('eq') ->setValue($this->userContext->getUserId()) ->create(); $identifierFilter = $this->filterBuilder ->setField('identifier') ->setConditionType('eq') ->setValue($identifier) ->create(); $namespaceFilter = $this->filterBuilder ->setField('namespace') ->setConditionType('eq') ->setValue($namespace) ->create(); $this->searchCriteriaBuilder->addFilters([$userIdFilter]); $this->searchCriteriaBuilder->addFilters([$identifierFilter]); $this->searchCriteriaBuilder->addFilters([$namespaceFilter]); $searchCriteria = $this->searchCriteriaBuilder->create(); $searchResults = $this->bookmarkRepository->getList($searchCriteria); if ($searchResults->getTotalCount() > 0) { foreach ($searchResults->getItems() as $searchResult) { $bookmark = $this->bookmarkRepository->getById($searchResult->getId()); return $bookmark; } } return null; } }