Skip to content

Commit 3405a42

Browse files
authored
Merge pull request #2455 from meyerbaptiste/elasticsearch
Various fixes and improvements for Elasticsearch reading support
2 parents c24a07a + 96bc6ae commit 3405a42

26 files changed

+265
-129
lines changed

phpstan.neon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ parameters:
22
autoload_files:
33
- tests/Fixtures/app/AppKernel.php
44
excludes_analyse:
5-
- tests/Fixtures/app/cache
5+
- tests/Fixtures/app/var/cache
66
# The Symfony Configuration API isn't good enough to be analysed
77
- src/Bridge/Symfony/Bundle/DependencyInjection/Configuration.php
88
ignoreErrors:

src/Bridge/Elasticsearch/DataProvider/CollectionDataProvider.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
namespace ApiPlatform\Core\Bridge\Elasticsearch\DataProvider;
1515

1616
use ApiPlatform\Core\Bridge\Elasticsearch\Api\IdentifierExtractorInterface;
17-
use ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\Extension\FullBodySearchCollectionExtensionInterface;
17+
use ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\Extension\RequestBodySearchCollectionExtensionInterface;
1818
use ApiPlatform\Core\Bridge\Elasticsearch\Exception\IndexNotFoundException;
1919
use ApiPlatform\Core\Bridge\Elasticsearch\Exception\NonUniqueIdentifierException;
2020
use ApiPlatform\Core\Bridge\Elasticsearch\Metadata\Document\Factory\DocumentMetadataFactoryInterface;
@@ -41,7 +41,7 @@ final class CollectionDataProvider implements ContextAwareCollectionDataProvider
4141
private $collectionExtensions;
4242

4343
/**
44-
* @param FullBodySearchCollectionExtensionInterface[] $collectionExtensions
44+
* @param RequestBodySearchCollectionExtensionInterface[] $collectionExtensions
4545
*/
4646
public function __construct(Client $client, DocumentMetadataFactoryInterface $documentMetadataFactory, IdentifierExtractorInterface $identifierExtractor, DenormalizerInterface $denormalizer, Pagination $pagination, iterable $collectionExtensions = [])
4747
{

src/Bridge/Elasticsearch/DataProvider/Extension/AbstractFilterExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
*
2424
* @author Baptiste Meyer <[email protected]>
2525
*/
26-
abstract class AbstractFilterExtension implements FullBodySearchCollectionExtensionInterface
26+
abstract class AbstractFilterExtension implements RequestBodySearchCollectionExtensionInterface
2727
{
2828
private $resourceMetadataFactory;
2929
private $filterLocator;

src/Bridge/Elasticsearch/DataProvider/Extension/FullBodySearchCollectionExtensionInterface.php renamed to src/Bridge/Elasticsearch/DataProvider/Extension/RequestBodySearchCollectionExtensionInterface.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,15 @@
1414
namespace ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\Extension;
1515

1616
/**
17-
* Interface of Elasticsearch full-body search extensions for collection queries.
17+
* Interface of Elasticsearch request body search extensions for collection queries.
1818
*
19-
* @see https://www.elastic.co/guide/en/elasticsearch/guide/current/full-body-search.html
2019
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html
2120
*
2221
* @experimental
2322
*
2423
* @author Baptiste Meyer <[email protected]>
2524
*/
26-
interface FullBodySearchCollectionExtensionInterface
25+
interface RequestBodySearchCollectionExtensionInterface
2726
{
2827
public function applyToCollection(array $requestBody, string $resourceClass, ?string $operationName = null, array $context = []): array;
2928
}

src/Bridge/Elasticsearch/DataProvider/Extension/SortExtension.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@
2323
/**
2424
* Applies selected sorting while querying resource collection.
2525
*
26-
* @see https://www.elastic.co/guide/en/elasticsearch/guide/current/_sorting.html
2726
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html
2827
*
2928
* @experimental
3029
*
3130
* @author Baptiste Meyer <[email protected]>
3231
*/
33-
final class SortExtension implements FullBodySearchCollectionExtensionInterface
32+
final class SortExtension implements RequestBodySearchCollectionExtensionInterface
3433
{
3534
use FieldDatatypeTrait;
3635

src/Bridge/Elasticsearch/DataProvider/Extension/SortFilterExtension.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
/**
1919
* Applies filters on the sort parameter while querying resource collection.
2020
*
21-
* @see https://www.elastic.co/guide/en/elasticsearch/guide/current/_sorting.html
2221
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html
2322
*
2423
* @experimental

src/Bridge/Elasticsearch/DataProvider/Filter/OrderFilter.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
/**
2222
* Order the collection by given properties.
2323
*
24-
* @see https://www.elastic.co/guide/en/elasticsearch/guide/current/_sorting.html
2524
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html
2625
*
2726
* @experimental

src/Bridge/Elasticsearch/Metadata/Document/DocumentMetadata.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
/**
1717
* Document metadata.
1818
*
19-
* @see https://www.elastic.co/guide/en/elasticsearch/guide/current/_document_metadata.html
19+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-fields.html
2020
*
2121
* @experimental
2222
*

src/Bridge/Symfony/Bundle/ApiPlatformBundle.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
use ApiPlatform\Core\Bridge\Symfony\Bundle\DependencyInjection\Compiler\AnnotationFilterPass;
1717
use ApiPlatform\Core\Bridge\Symfony\Bundle\DependencyInjection\Compiler\DataProviderPass;
18+
use ApiPlatform\Core\Bridge\Symfony\Bundle\DependencyInjection\Compiler\ElasticsearchClientPass;
1819
use ApiPlatform\Core\Bridge\Symfony\Bundle\DependencyInjection\Compiler\FilterPass;
1920
use Symfony\Component\DependencyInjection\ContainerBuilder;
2021
use Symfony\Component\HttpKernel\Bundle\Bundle;
@@ -36,5 +37,6 @@ public function build(ContainerBuilder $container)
3637
$container->addCompilerPass(new DataProviderPass());
3738
$container->addCompilerPass(new AnnotationFilterPass());
3839
$container->addCompilerPass(new FilterPass());
40+
$container->addCompilerPass(new ElasticsearchClientPass());
3941
}
4042
}

src/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\FilterEagerLoadingExtension;
1919
use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface as DoctrineQueryCollectionExtensionInterface;
2020
use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
21-
use ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\Extension\FullBodySearchCollectionExtensionInterface as ElasticSearchQueryCollectionExtensionInterface;
21+
use ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\Extension\RequestBodySearchCollectionExtensionInterface;
2222
use ApiPlatform\Core\DataPersister\DataPersisterInterface;
2323
use ApiPlatform\Core\DataProvider\CollectionDataProviderInterface;
2424
use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
@@ -570,10 +570,10 @@ private function registerElasticsearchConfiguration(ContainerBuilder $container,
570570

571571
$loader->load('elasticsearch.xml');
572572

573-
$container->registerForAutoconfiguration(ElasticSearchQueryCollectionExtensionInterface::class)
574-
->addTag('api_platform.elasticsearch.query_extension.collection');
573+
$container->registerForAutoconfiguration(RequestBodySearchCollectionExtensionInterface::class)
574+
->addTag('api_platform.elasticsearch.request_body_search_extension.collection');
575575

576-
$container->setParameter('api_platform.elasticsearch.host', $config['elasticsearch']['host']);
576+
$container->setParameter('api_platform.elasticsearch.hosts', $config['elasticsearch']['hosts']);
577577
$container->setParameter('api_platform.elasticsearch.mapping', $config['elasticsearch']['mapping']);
578578
}
579579
}

0 commit comments

Comments
 (0)