Skip to content

Commit c7b4646

Browse files
committed
fix(test): apply review requested changes
1 parent 4e39f3b commit c7b4646

File tree

12 files changed

+40
-67
lines changed

12 files changed

+40
-67
lines changed

src/Doctrine/Odm/Filter/ExactFilter.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,13 @@ final class ExactFilter implements FilterInterface, OpenApiParameterFilterInterf
2727

2828
public function apply(Builder $aggregationBuilder, string $resourceClass, ?Operation $operation = null, array &$context = []): void
2929
{
30-
if (!$parameter = $context['parameter'] ?? null) {
31-
return;
32-
}
33-
34-
$values = (array) $parameter->getValue();
35-
36-
// TODO: handle nested properties
30+
$parameter = $context['parameter'];
31+
$value = $parameter->getValue();
3732
$property = $parameter->getProperty();
3833

3934
$aggregationBuilder
4035
->match()
4136
->field($property)
42-
->in($values);
37+
->{(is_iterable($value)) ? 'in' : 'equals'}($value);
4338
}
4439
}

src/Doctrine/Odm/Filter/IriFilter.php

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,14 @@ final class IriFilter implements FilterInterface, OpenApiParameterFilterInterfac
2929

3030
public function apply(Builder $aggregationBuilder, string $resourceClass, ?Operation $operation = null, array &$context = []): void
3131
{
32-
if (!$parameter = $context['parameter'] ?? null) {
33-
return;
34-
}
35-
36-
$value = $parameter->getValue();
37-
if (!\is_array($value)) {
38-
$value = [$value];
39-
}
40-
41-
// TODO: handle nested properties
42-
$property = $parameter->getProperty();
32+
$parameter = $context['parameter'];
33+
$value = $parameter->getValue();
34+
$property = $parameter->getProperty();
4335

4436
$aggregationBuilder
4537
->match()
4638
->field($property)
47-
->in($value);
39+
->{(is_iterable($value)) ? 'in' : 'equals'}($value);
4840
}
4941

5042
public static function getParameterProvider(): string

src/Doctrine/Odm/Filter/PartialSearchFilter.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ final class PartialSearchFilter implements FilterInterface, OpenApiParameterFilt
2828

2929
public function apply(Builder $aggregationBuilder, string $resourceClass, ?Operation $operation = null, array &$context = []): void
3030
{
31-
if (!$parameter = $context['parameter'] ?? null) {
32-
return;
33-
}
34-
31+
$parameter = $context['parameter'];
3532
$value = $parameter->getValue();
3633
if (!\is_string($value) || '' === $value) {
3734
return;

src/Doctrine/Orm/Filter/ExactFilter.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,21 @@ final class ExactFilter implements FilterInterface, OpenApiParameterFilterInterf
2828

2929
public function apply(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, ?Operation $operation = null, array $context = []): void
3030
{
31-
if (!$parameter = $context['parameter'] ?? null) {
32-
return;
33-
}
34-
31+
$parameter = $context['parameter'];
3532
$value = $parameter->getValue();
36-
if (!\is_array($value)) {
37-
$value = [$value];
38-
}
3933

4034
$property = $parameter->getProperty();
4135
$alias = $queryBuilder->getRootAliases()[0];
4236
$parameterName = $queryNameGenerator->generateParameterName($property);
4337

44-
$queryBuilder
45-
->andWhere(\sprintf('%s.%s = :%s', $alias, $property, $parameterName))
46-
->setParameter($parameterName, $value);
38+
if (\is_array($value)) {
39+
$queryBuilder
40+
->andWhere(\sprintf('%s.%s IN (:%s)', $alias, $property, $parameterName));
41+
} else {
42+
$queryBuilder
43+
->andWhere(\sprintf('%s.%s = :%s', $alias, $property, $parameterName));
44+
}
45+
46+
$queryBuilder->setParameter($parameterName, $value);
4747
}
4848
}

src/Doctrine/Orm/Filter/IriFilter.php

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,22 @@ final class IriFilter implements FilterInterface, OpenApiParameterFilterInterfac
3030

3131
public function apply(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, ?Operation $operation = null, array $context = []): void
3232
{
33-
if (!$parameter = $context['parameter'] ?? null) {
34-
return;
35-
}
36-
33+
$parameter = $context['parameter'];
3734
$value = $parameter->getValue();
38-
if (!\is_array($value)) {
39-
$value = [$value];
40-
}
4135

4236
$property = $parameter->getProperty();
4337
$alias = $queryBuilder->getRootAliases()[0];
4438
$parameterName = $queryNameGenerator->generateParameterName($property);
4539

46-
$queryBuilder
47-
->join(\sprintf('%s.%s', $alias, $property), $parameterName)
48-
->andWhere(\sprintf('%s IN(:%s)', $parameterName, $parameterName))
49-
->setParameter($parameterName, $value);
40+
if (\is_array($value)) {
41+
$queryBuilder
42+
->andWhere(\sprintf('%s.%s IN (:%s)', $alias, $property, $parameterName));
43+
} else {
44+
$queryBuilder
45+
->andWhere(\sprintf('%s.%s = :%s', $alias, $property, $parameterName));
46+
}
47+
48+
$queryBuilder->setParameter($parameterName, $value);
5049
}
5150

5251
public static function getParameterProvider(): string

src/Doctrine/Orm/Filter/OrFilter.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
/**
2525
* @author Vincent Amstoutz <[email protected]>
2626
*/
27-
final class OrFilter implements FilterInterface, OpenApiParameterFilterInterface, ParameterProviderFilterInterface
27+
final class OrFilter implements FilterInterface, OpenApiParameterFilterInterface
2828
{
2929
use OpenApiFilterTrait;
3030

@@ -44,9 +44,4 @@ public function apply(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $q
4444
$filter->apply($queryBuilder, $queryNameGenerator, $resourceClass, $operation, $context);
4545
}
4646
}
47-
48-
public static function getParameterProvider(): string
49-
{
50-
return IriConverterParameterProvider::class;
51-
}
5247
}

src/Doctrine/Orm/Filter/PartialSearchFilter.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ final class PartialSearchFilter implements FilterInterface, OpenApiParameterFilt
2828

2929
public function apply(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, ?Operation $operation = null, array $context = []): void
3030
{
31-
if (!$parameter = $context['parameter'] ?? null) {
32-
return;
33-
}
34-
31+
$parameter = $context['parameter'];
3532
$value = $parameter->getValue();
3633

3734
$property = $parameter->getProperty();

tests/Fixtures/TestBundle/Document/Company.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
#[ODM\Document]
3838
class Company
3939
{
40-
#[ODM\Id(type: 'int', strategy: 'INCREMENT')]
40+
#[ODM\Id(strategy: 'INCREMENT', type: 'int')]
4141
private ?int $id = null;
4242

4343
#[ODM\Field]

tests/Functional/Parameters/ExactFilterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
*/
3434
final class ExactFilterTest extends ApiTestCase
3535
{
36+
protected static ?bool $alwaysBootKernel = false;
37+
3638
use RecreateSchemaTrait;
3739
use SetupClassResourcesTrait;
3840

@@ -49,8 +51,6 @@ public static function getResources(): array
4951
*/
5052
protected function setUp(): void
5153
{
52-
self::$alwaysBootKernel = false;
53-
5454
$entities = $this->isMongoDB()
5555
? [DocumentChicken::class, DocumentChickenCoop::class]
5656
: [Chicken::class, ChickenCoop::class];

tests/Functional/Parameters/IriFilterTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@ public function testIriFilterMultiple(): void
5757
*/
5858
protected function setUp(): void
5959
{
60-
self::$alwaysBootKernel = false;
61-
6260
$this->recreateSchema([$this->isMongoDB() ? DocumentChicken::class : Chicken::class, $this->isMongoDB() ? DocumentChickenCoop::class : ChickenCoop::class]);
6361
$this->loadFixtures();
6462
}

0 commit comments

Comments
 (0)