Skip to content

Commit 0333913

Browse files
committed
IBX-9266: Review remarks
1 parent d965cfb commit 0333913

File tree

6 files changed

+18
-13
lines changed

6 files changed

+18
-13
lines changed

src/bundle/Controller/ContentTypeFieldsByExpressionController.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88

99
namespace Ibexa\Bundle\AdminUi\Controller;
1010

11+
use Ibexa\AdminUi\Exception\FieldTypeExpressionParserException;
1112
use Ibexa\AdminUi\REST\Value\ContentType\FieldDefinitionInfoList;
1213
use Ibexa\Contracts\AdminUi\ContentType\ContentTypeFieldsByExpressionServiceInterface;
1314
use Ibexa\Rest\Message;
1415
use Ibexa\Rest\Server\Controller as RestController;
16+
use Ibexa\Rest\Server\Exceptions\BadRequestException;
17+
use LogicException;
1518
use Symfony\Component\HttpFoundation\Request;
1619

1720
final class ContentTypeFieldsByExpressionController extends RestController
@@ -36,8 +39,12 @@ public function loadFieldDefinitionsFromExpression(Request $request): FieldDefin
3639
)
3740
);
3841

39-
return new FieldDefinitionInfoList(
40-
$this->fieldsByExpressionService->getFieldsFromExpression($input->expression),
41-
);
42+
try {
43+
$fieldDefinitions = $this->fieldsByExpressionService->getFieldsFromExpression($input->expression);
44+
} catch (FieldTypeExpressionParserException | LogicException $e) {
45+
throw new BadRequestException($e->getMessage());
46+
}
47+
48+
return new FieldDefinitionInfoList($fieldDefinitions);
4249
}
4350
}

src/bundle/Resources/config/services/controllers.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,6 @@ services:
261261

262262
Ibexa\Bundle\AdminUi\Controller\ContentTypeFieldsByExpressionController:
263263
parent: Ibexa\Rest\Server\Controller
264-
autowire: true
265264
arguments:
266265
$fieldsByExpressionService: '@Ibexa\Contracts\AdminUi\ContentType\ContentTypeFieldsByExpressionServiceInterface'
267266
tags:

src/contracts/ContentType/ContentTypeFieldsByExpressionServiceInterface.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ interface ContentTypeFieldsByExpressionServiceInterface
1616
* @return list<\Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition>
1717
*
1818
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException
19+
* @throws \Ibexa\AdminUi\Exception\FieldTypeExpressionParserException
20+
* @throws \LogicException
1921
*/
2022
public function getFieldsFromExpression(string $expression): array;
2123

src/lib/REST/Output/ValueObjectVisitor/ContentType/FieldDefinitionInfoList.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,9 @@ public function visit(Visitor $visitor, Generator $generator, $data): void
2828
foreach ($fieldDefinitionList->fieldDefinitions as $fieldDefinition) {
2929
$generator->startObjectElement('FieldDefinitionInfo');
3030

31-
$generator->startValueElement('id', $fieldDefinition->id);
32-
$generator->endValueElement('id');
33-
34-
$generator->startValueElement('identifier', $fieldDefinition->identifier);
35-
$generator->endValueElement('identifier');
36-
37-
$generator->startValueElement('position', $fieldDefinition->position);
38-
$generator->endValueElement('position');
31+
$generator->valueElement('id', $fieldDefinition->id);
32+
$generator->valueElement('identifier', $fieldDefinition->identifier);
33+
$generator->valueElement('position', $fieldDefinition->position);
3934

4035
$this->visitNamesList($generator, $fieldDefinition->getNames());
4136

src/lib/Util/ContentTypeFieldsExtractorInterface.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ interface ContentTypeFieldsExtractorInterface
1414
* @return list<int>
1515
*
1616
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException
17+
* @throws \Ibexa\AdminUi\Exception\FieldTypeExpressionParserException
18+
* @throws \LogicException
1719
*/
1820
public function extractFieldsFromExpression(string $expression): array;
1921

tests/integration/REST/PostLoadFieldDefinitionsFromExpression.php renamed to tests/integration/REST/PostLoadFieldDefinitionsFromExpressionTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
/**
1515
* Coverage for /content-type/load-field-definitions-from-expression REST endpoint.
1616
*/
17-
final class PostLoadFieldDefinitionsFromExpression extends BaseAdminUiRestWebTestCase
17+
final class PostLoadFieldDefinitionsFromExpressionTest extends BaseAdminUiRestWebTestCase
1818
{
1919
private const INPUT_MEDIA_TYPE = 'FieldDefinitionExpression';
2020

0 commit comments

Comments
 (0)