Skip to content

Commit bf0d307

Browse files
committed
Declared all files query handler as a service
1 parent f641a72 commit bf0d307

4 files changed

Lines changed: 76 additions & 3 deletions

File tree

docs/reference_services.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Service Reference
1+
# Service Reference
22

33
All available services are listed below with their associated class.
44
```bash
@@ -16,6 +16,7 @@ bengor_file.file.factory BenGorFile\File\Infrastructure\Domain\M
1616

1717
bengor_file.file.by_id_query BenGorFile\File\Application\Query\FileOfIdHandler
1818
bengor_file.file.by_name_query BenGorFile\File\Application\Query\FileOfNameHandler
19+
bengor_file.file.all_query BenGorFile\File\Application\Query\AllFilesHandler
1920

2021
bengor_file.file.filesystem BenGorFile\GaufretteFilesystemBridge\Infrastructure\Domain\Model\GaufretteFilesystem
2122
BenGorFile\SymfonyFilesystemBridge\Infrastructure\Domain\Model\SymfonyFilesystem
@@ -34,7 +35,8 @@ bengor.file.application.command.upload_file BenGorFile\File\Application\C
3435
3536
bengor.file.application.data_transformer.file_dto BenGorFile\File\Application\DataTransformer\FileDTODataTransformer
3637
37-
bengor.file.application.query.file_of_id BenGorFile\File\Application\Query\FileOfIdQuery
38-
bengor.file.application.query.file_of_name BenGorFile\File\Application\Query\FileOfNameQuery
38+
bengor.file.application.query.file_of_id BenGorFile\File\Application\Query\FileOfIdHandler
39+
bengor.file.application.query.file_of_name BenGorFile\File\Application\Query\FileOfNameHandler
40+
bengor.file.application.query.all_files BenGorFile\File\Application\Query\AllFilesHandler
3941
```
4042
- Back to the [index](index.md).

spec/BenGorFile/FileBundle/DependencyInjection/Compiler/ApplicationQueriesPassSpec.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,15 @@ function it_processes(ContainerBuilder $container, Definition $definition)
7777
'bengor.file.application.query.file_of_name'
7878
)->shouldBeCalled()->willReturn($container);
7979

80+
$container->setDefinition(
81+
'bengor.file.application.query.all_files',
82+
Argument::type(Definition::class)
83+
)->shouldBeCalled()->willReturn($definition);
84+
$container->setAlias(
85+
'bengor_file.file.all_query',
86+
'bengor.file.application.query.all_files'
87+
)->shouldBeCalled()->willReturn($container);
88+
8089
$this->process($container);
8190
}
8291
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the BenGorFile package.
5+
*
6+
* (c) Beñat Espiña <benatespina@gmail.com>
7+
* (c) Gorka Laucirica <gorka.lauzirika@gmail.com>
8+
*
9+
* For the full copyright and license information, please view the LICENSE
10+
* file that was distributed with this source code.
11+
*/
12+
13+
namespace BenGorFile\FileBundle\DependencyInjection\Compiler\Application\Query;
14+
15+
use BenGorFile\File\Application\Query\AllFilesHandler;
16+
use Symfony\Component\DependencyInjection\Definition;
17+
18+
/**
19+
* All files query builder.
20+
*
21+
* @author Beñat Espiña <benatespina@gmail.com>
22+
*/
23+
class AllFilesQueryBuilder extends QueryBuilder
24+
{
25+
/**
26+
* {@inheritdoc}
27+
*/
28+
public function register($file)
29+
{
30+
$this->container->setDefinition(
31+
$this->definitionName($file),
32+
new Definition(
33+
AllFilesHandler::class, [
34+
$this->container->getDefinition(
35+
'bengor.file.infrastructure.persistence.' . $file . '_repository'
36+
),
37+
$this->container->getDefinition(
38+
'bengor.file.application.data_transformer.' . $file . '_dto'
39+
),
40+
]
41+
)
42+
);
43+
}
44+
45+
/**
46+
* {@inheritdoc}
47+
*/
48+
protected function definitionName($file)
49+
{
50+
return 'bengor.file.application.query.all_' . $file . 's';
51+
}
52+
53+
/**
54+
* {@inheritdoc}
55+
*/
56+
protected function aliasDefinitionName($file)
57+
{
58+
return 'bengor_file.' . $file . '.all_query';
59+
}
60+
}

src/BenGorFile/FileBundle/DependencyInjection/Compiler/ApplicationQueriesPass.php

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

1313
namespace BenGorFile\FileBundle\DependencyInjection\Compiler;
1414

15+
use BenGorFile\FileBundle\DependencyInjection\Compiler\Application\Query\AllFilesQueryBuilder;
1516
use BenGorFile\FileBundle\DependencyInjection\Compiler\Application\Query\FileOfIdQueryBuilder;
1617
use BenGorFile\FileBundle\DependencyInjection\Compiler\Application\Query\FileOfNameQueryBuilder;
1718
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
@@ -35,6 +36,7 @@ public function process(ContainerBuilder $container)
3536
$config = $container->getParameter('bengor_file.config');
3637

3738
foreach ($config['file_class'] as $key => $file) {
39+
(new AllFilesQueryBuilder($container))->build($key);
3840
(new FileOfIdQueryBuilder($container))->build($key);
3941
(new FileOfNameQueryBuilder($container))->build($key);
4042
}

0 commit comments

Comments
 (0)