Skip to content

Commit c6540d9

Browse files
committed
start es
1 parent 6b01ef4 commit c6540d9

File tree

8 files changed

+42
-42
lines changed

8 files changed

+42
-42
lines changed

.github/patch/prophecy.patch

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
diff --git a/composer.json b/composer.json
2+
index c22a11390..52ba3fa0a 100644
3+
--- a/composer.json
4+
+++ b/composer.json
5+
@@ -52,6 +52,7 @@
6+
"phpstan/phpstan-doctrine": "^1.0",
7+
"phpstan/phpstan-phpunit": "^1.0",
8+
"phpstan/phpstan-symfony": "^1.0",
9+
+ "phpspec/prophecy": "dev-fix/527",
10+
"psr/log": "^1.0 || ^2.0 || ^3.0",
11+
"ramsey/uuid": "^3.7 || ^4.0",
12+
"ramsey/uuid-doctrine": "^1.4",
13+
@@ -132,5 +133,12 @@
14+
"symfony": {
15+
"require": "^3.4 || ^4.4 || ^5.1 || ^6.0"
16+
}
17+
- }
18+
+ },
19+
+ "repositories": [
20+
+ {
21+
+ "type": "git",
22+
+ "url": "https://github.com/denis-rolling-scopes/prophecy"
23+
+ }
24+
+ ],
25+
+ "minimum-stability": "dev"
26+
}

.github/workflows/ci.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -253,18 +253,14 @@ jobs:
253253
- name: Export OpenAPI documents
254254
run: |
255255
mkdir -p build/out/openapi
256-
tests/Fixtures/app/console api:openapi:export --spec-version=2 -o build/out/openapi/swagger_v2.json
257-
tests/Fixtures/app/console api:openapi:export --spec-version=2 --yaml -o build/out/openapi/swagger_v2.yaml
258-
tests/Fixtures/app/console api:openapi:export --spec-version=3 -o build/out/openapi/openapi_v3.json
259-
tests/Fixtures/app/console api:openapi:export --spec-version=3 --yaml -o build/out/openapi/openapi_v3.yaml
256+
tests/Fixtures/app/console api:openapi:export -o build/out/openapi/openapi_v3.json
257+
tests/Fixtures/app/console api:openapi:export --yaml -o build/out/openapi/openapi_v3.yaml
260258
- name: Setup node
261259
uses: actions/setup-node@v2
262260
with:
263261
node-version: '14'
264262
- name: Validate OpenAPI documents
265263
run: |
266-
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.json
267-
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.yaml
268264
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.json
269265
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.yaml
270266
- name: Upload OpenAPI artifacts

src/Elasticsearch/Extension/SortExtension.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use ApiPlatform\Elasticsearch\Util\FieldDatatypeTrait;
1818
use ApiPlatform\Metadata\HttpOperation;
1919
use ApiPlatform\Metadata\Operation;
20+
use ApiPlatform\Metadata\Property\Factory\PropertyMetadataFactoryInterface;
2021
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
2122

2223
/**
@@ -35,7 +36,7 @@ final class SortExtension implements RequestBodySearchCollectionExtensionInterfa
3536
private $defaultDirection;
3637
private $nameConverter;
3738

38-
public function __construct($propertyMetadataFactory, ResourceClassResolverInterface $resourceClassResolver, ?NameConverterInterface $nameConverter = null, ?string $defaultDirection = null)
39+
public function __construct(PropertyMetadataFactoryInterface $propertyMetadataFactory, ResourceClassResolverInterface $resourceClassResolver, ?NameConverterInterface $nameConverter = null, ?string $defaultDirection = null)
3940
{
4041
$this->propertyMetadataFactory = $propertyMetadataFactory;
4142
$this->resourceClassResolver = $resourceClassResolver;

src/OpenApi/Factory/OpenApiFactory.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,13 @@ private function collectPaths(ApiResource $resource, ResourceMetadataCollection
140140
$this->routeCollection = $this->router->getRouteCollection();
141141
}
142142

143-
$path = $this->getPath($routeName && $this->routeCollection ? $this->routeCollection->get($routeName)->getPath() : ($operation->getRoutePrefix() ?? '').$operation->getUriTemplate());
143+
if ($this->routeCollection && $routeName && $route = $this->routeCollection->get($routeName)) {
144+
$path = $route->getPath();
145+
} else {
146+
$path = ($operation->getRoutePrefix() ?? '').$operation->getUriTemplate();
147+
}
148+
149+
$path = $this->getPath($path);
144150
$method = $operation->getMethod() ?? HttpOperation::METHOD_GET;
145151

146152
if (!\in_array($method, Model\PathItem::$methods, true)) {

src/Symfony/Bundle/Resources/config/elasticsearch.xml

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
<services>
88
<service id="api_platform.elasticsearch.client" class="Elasticsearch\Client" public="false" />
99

10-
<service id="api_platform.elasticsearch.metadata.resource.metadata_factory.operation" class="ApiPlatform\Core\Bridge\Elasticsearch\Metadata\Resource\Factory\ElasticsearchOperationResourceMetadataFactory" decorates="api_platform.metadata.resource.metadata_factory" decoration-priority="10" public="false">
11-
<argument type="service" id="api_platform.elasticsearch.metadata.resource.metadata_factory.operation.inner" />
12-
</service>
13-
1410
<service id="api_platform.elasticsearch.cache.metadata.document" parent="cache.system" public="false">
1511
<tag name="cache.pool" />
1612
</service>
@@ -48,7 +44,7 @@
4844
</service>
4945

5046
<service id="api_platform.elasticsearch.normalizer.document" class="ApiPlatform\Elasticsearch\Serializer\DocumentNormalizer" public="false">
51-
<argument type="service" id="api_platform.elasticsearch.identifier_extractor" />
47+
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
5248
<argument type="service" id="serializer.mapping.class_metadata_factory" />
5349
<argument type="service" id="api_platform.elasticsearch.name_converter.inner_fields" />
5450
<argument type="service" id="serializer.property_accessor" />
@@ -59,28 +55,6 @@
5955
<tag name="serializer.normalizer" priority="-922" />
6056
</service>
6157

62-
<service id="api_platform.elasticsearch.item_data_provider" class="ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\ItemDataProvider" public="false">
63-
<argument type="service" id="api_platform.elasticsearch.client" />
64-
<argument type="service" id="api_platform.elasticsearch.metadata.document.metadata_factory" />
65-
<argument type="service" id="api_platform.elasticsearch.identifier_extractor" />
66-
<argument type="service" id="serializer" />
67-
<argument type="service" id="api_platform.metadata.resource.metadata_factory" />
68-
69-
<tag name="api_platform.item_data_provider" priority="5" />
70-
</service>
71-
72-
<service id="api_platform.elasticsearch.collection_data_provider" class="ApiPlatform\Core\Bridge\Elasticsearch\DataProvider\CollectionDataProvider" public="false">
73-
<argument type="service" id="api_platform.elasticsearch.client" />
74-
<argument type="service" id="api_platform.elasticsearch.metadata.document.metadata_factory" />
75-
<argument type="service" id="api_platform.elasticsearch.identifier_extractor" />
76-
<argument type="service" id="serializer" />
77-
<argument type="service" id="api_platform.pagination" />
78-
<argument type="service" id="api_platform.metadata.resource.metadata_factory" />
79-
<argument type="tagged" tag="api_platform.elasticsearch.request_body_search_extension.collection" />
80-
81-
<tag name="api_platform.collection_data_provider" priority="5" />
82-
</service>
83-
8458
<service id="api_platform.elasticsearch.request_body_search_extension.filter" public="false" abstract="true">
8559
<argument type="service" id="api_platform.filter_locator" />
8660
</service>
@@ -94,7 +68,6 @@
9468
</service>
9569

9670
<service id="api_platform.elasticsearch.request_body_search_extension.sort" class="ApiPlatform\Elasticsearch\Extension\SortExtension" public="false">
97-
<argument type="service" id="api_platform.elasticsearch.identifier_extractor" />
9871
<argument type="service" id="api_platform.metadata.property.metadata_factory" />
9972
<argument type="service" id="api_platform.resource_class_resolver" />
10073
<argument type="service" id="api_platform.elasticsearch.name_converter.inner_fields" />
@@ -107,7 +80,6 @@
10780
<argument type="service" id="api_platform.metadata.property.name_collection_factory" />
10881
<argument type="service" id="api_platform.metadata.property.metadata_factory" />
10982
<argument type="service" id="api_platform.resource_class_resolver" />
110-
<argument type="service" id="api_platform.elasticsearch.identifier_extractor" />
11183
<argument type="service" id="api_platform.iri_converter" />
11284
<argument type="service" id="api_platform.property_accessor" />
11385
<argument type="service" id="api_platform.elasticsearch.name_converter.inner_fields" />

tests/Fixtures/TestBundle/Dto/InputDto.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class InputDto
3131
public $bar;
3232

3333
/**
34-
* @var RelatedDummy[]
34+
* @var RelatedDummy[]|null
3535
*/
3636
public $relatedDummies;
3737
}

tests/Fixtures/TestBundle/State/DummyDtoInputOutputProcessor.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ public function process($data, Operation $operation, array $uriVariables = [], a
4646

4747
$entity->str = $data->foo;
4848
$entity->num = $data->bar;
49-
$entity->relatedDummies = new ArrayCollection($data->relatedDummies);
49+
if ($data->relatedDummies) {
50+
$entity->relatedDummies = new ArrayCollection($data->relatedDummies);
51+
}
5052

5153
$manager->persist($entity);
5254
$manager->flush();

tests/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,7 +1087,6 @@ public function testElasticsearchConfiguration(): void
10871087
ElasticsearchItemProvider::class,
10881088
ElasticsearchCollectionProvider::class,
10891089
'api_platform.elasticsearch.client',
1090-
'api_platform.elasticsearch.metadata.resource.metadata_factory.operation',
10911090
'api_platform.elasticsearch.cache.metadata.document',
10921091
'api_platform.elasticsearch.metadata.document.metadata_factory.configured',
10931092
'api_platform.elasticsearch.metadata.document.metadata_factory.attribute',
@@ -1122,8 +1121,6 @@ public function testElasticsearchConfiguration(): void
11221121
$this->assertServiceHasTags('api_platform.elasticsearch.normalizer.document', ['serializer.normalizer']);
11231122
$this->assertServiceHasTags(ElasticsearchItemProvider::class, ['api_platform.state_provider']);
11241123
$this->assertServiceHasTags(ElasticsearchCollectionProvider::class, ['api_platform.state_provider']);
1125-
$this->assertServiceHasTags('api_platform.elasticsearch.item_data_provider', ['api_platform.item_data_provider']);
1126-
$this->assertServiceHasTags('api_platform.elasticsearch.collection_data_provider', ['api_platform.collection_data_provider']);
11271124
$this->assertServiceHasTags('api_platform.elasticsearch.request_body_search_extension.constant_score_filter', ['api_platform.elasticsearch.request_body_search_extension.collection']);
11281125
$this->assertServiceHasTags('api_platform.elasticsearch.request_body_search_extension.sort_filter', ['api_platform.elasticsearch.request_body_search_extension.collection']);
11291126
$this->assertServiceHasTags('api_platform.elasticsearch.request_body_search_extension.sort', ['api_platform.elasticsearch.request_body_search_extension.collection']);

0 commit comments

Comments
 (0)