diff --git a/Classes/Domain/Repository/MetadataRepository.php b/Classes/Domain/Repository/MetadataRepository.php index 78a53bfdec..526439bf75 100644 --- a/Classes/Domain/Repository/MetadataRepository.php +++ b/Classes/Domain/Repository/MetadataRepository.php @@ -14,17 +14,20 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; use TYPO3\CMS\Extbase\Persistence\QueryInterface; +use TYPO3\CMS\Extbase\Persistence\QueryResultInterface; +use TYPO3\CMS\Extbase\Persistence\Repository; -class MetadataRepository extends \TYPO3\CMS\Extbase\Persistence\Repository +class MetadataRepository extends Repository { /** * Finds all collection for the given settings * * @param array $settings * - * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface + * @return array|QueryResultInterface */ public function findBySettings($settings = []) { @@ -64,15 +67,7 @@ public function findBySettings($settings = []) */ public function findWithFormat($pid, $type) { - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable('tx_dlf_metadata'); - - // Get hidden records, too. - $queryBuilder - ->getRestrictions() - ->removeByType(HiddenRestriction::class); - - $query = $queryBuilder + $query = $this->getQueryBuilder() ->select( 'tx_dlf_metadata.index_name AS index_name', 'tx_dlf_metadataformat_joins.xpath AS xpath', @@ -118,15 +113,7 @@ public function findWithFormat($pid, $type) */ public function findWithoutFormat($pid) { - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable('tx_dlf_metadata'); - - // Get hidden records, too. - $queryBuilder - ->getRestrictions() - ->removeByType(HiddenRestriction::class); - - $query = $queryBuilder + $query = $this->getQueryBuilder() ->select( 'tx_dlf_metadata.index_name AS index_name', 'tx_dlf_metadata.is_sortable AS is_sortable', @@ -161,15 +148,7 @@ public function findQueryPath($pid, $iiifVersion) * check the configuration. * TODO Saving / indexing should still work - check! */ - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable('tx_dlf_metadata'); - - // Get hidden records, too. - $queryBuilder - ->getRestrictions() - ->removeByType(HiddenRestriction::class); - - $query = $queryBuilder + $query = $this->getQueryBuilder() ->select('tx_dlf_metadataformat.xpath AS querypath') ->from('tx_dlf_metadata') ->from('tx_dlf_metadataformat') @@ -201,15 +180,7 @@ public function findQueryPath($pid, $iiifVersion) */ public function findForIiif($pid, $iiifVersion) { - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable('tx_dlf_metadata'); - - // Get hidden records, too. - $queryBuilder - ->getRestrictions() - ->removeByType(HiddenRestriction::class); - - $query = $queryBuilder + $query = $this->getQueryBuilder() ->select( 'tx_dlf_metadata.index_name AS index_name', 'tx_dlf_metadataformat.xpath AS xpath', @@ -236,4 +207,21 @@ public function findForIiif($pid, $iiifVersion) return $query->execute()->fetchAll(); } + + /** + * Get query builder for tx_dlf_metadata table. + * + * @return QueryBuilder + */ + private function getQueryBuilder() : QueryBuilder { + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('tx_dlf_metadata'); + + // Get hidden records, too. + $queryBuilder + ->getRestrictions() + ->removeByType(HiddenRestriction::class); + + return $queryBuilder; + } }