Skip to content

Commit caf1ac7

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

File tree

12 files changed

+38
-67
lines changed

12 files changed

+38
-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: 2 additions & 10 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-
32+
$parameter = $context['parameter'];
3633
$value = $parameter->getValue();
37-
if (!\is_array($value)) {
38-
$value = [$value];
39-
}
40-
41-
// TODO: handle nested properties
4234
$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 & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@
1717
use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface;
1818
use ApiPlatform\Metadata\OpenApiParameterFilterInterface;
1919
use ApiPlatform\Metadata\Operation;
20-
use ApiPlatform\Metadata\ParameterProviderFilterInterface;
21-
use ApiPlatform\State\ParameterProvider\IriConverterParameterProvider;
2220
use Doctrine\ORM\QueryBuilder;
2321

2422
/**
2523
* @author Vincent Amstoutz <[email protected]>
2624
*/
27-
final class OrFilter implements FilterInterface, OpenApiParameterFilterInterface, ParameterProviderFilterInterface
25+
final class OrFilter implements FilterInterface, OpenApiParameterFilterInterface
2826
{
2927
use OpenApiFilterTrait;
3028

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

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
@@ -36,6 +36,8 @@ final class ExactFilterTest extends ApiTestCase
3636
use RecreateSchemaTrait;
3737
use SetupClassResourcesTrait;
3838

39+
protected static ?bool $alwaysBootKernel = false;
40+
3941
/**
4042
* @return class-string[]
4143
*/
@@ -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)