From 08b2d91e53d4648d6d7782504359fcafcd31589e Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 2 Dec 2024 10:54:48 +0100 Subject: [PATCH 1/4] renamed path to inputUri --- src/lib/FieldTypeProcessor/ImageProcessor.php | 2 +- tests/lib/FieldTypeProcessor/ImageProcessorTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/FieldTypeProcessor/ImageProcessor.php b/src/lib/FieldTypeProcessor/ImageProcessor.php index e209c7dc7..cd5a6acd0 100644 --- a/src/lib/FieldTypeProcessor/ImageProcessor.php +++ b/src/lib/FieldTypeProcessor/ImageProcessor.php @@ -64,7 +64,7 @@ public function postProcessValueHash($outgoingValueHash) return $outgoingValueHash; } - $outgoingValueHash['path'] = '/' . $outgoingValueHash['path']; + $outgoingValueHash['path'] = '/' . $outgoingValueHash['inputUri']; foreach ($this->variations as $variationIdentifier) { $outgoingValueHash['variations'][$variationIdentifier] = [ 'href' => $this->router->generate( diff --git a/tests/lib/FieldTypeProcessor/ImageProcessorTest.php b/tests/lib/FieldTypeProcessor/ImageProcessorTest.php index 7b59825af..c1378a450 100644 --- a/tests/lib/FieldTypeProcessor/ImageProcessorTest.php +++ b/tests/lib/FieldTypeProcessor/ImageProcessorTest.php @@ -23,7 +23,7 @@ public function testPostProcessValueHash() $processor = $this->getProcessor(); $inputHash = [ - 'path' => 'var/some_site/223-1-eng-US/Cool-File.jpg', + 'inputUri' => 'var/some_site/223-1-eng-US/Cool-File.jpg', 'imageId' => '223-12345', ]; From 41d5bd8a3dc4a1f033b8a5c1e610002153f9a8a0 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 2 Dec 2024 11:13:35 +0100 Subject: [PATCH 2/4] Dropped removed Location::SORT_FIELD_MODIFIED_SUBNODE --- phpstan-baseline.neon | 15 --------------- src/contracts/Output/ValueObjectVisitor.php | 2 -- src/lib/Input/ParserTools.php | 2 -- 3 files changed, 19 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 9fed83143..9a5cf992e 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1010,11 +1010,6 @@ parameters: count: 1 path: src/lib/Server/Controller/Content.php - - - message: "#^Parameter \\#1 \\$versions of class Ibexa\\\\Rest\\\\Server\\\\Values\\\\VersionList constructor expects array\\, iterable\\ given\\.$#" - count: 1 - path: src/lib/Server/Controller/Content.php - - message: "#^Method Ibexa\\\\Rest\\\\Server\\\\Controller\\\\ContentType\\:\\:addContentTypeDraftFieldDefinition\\(\\) has parameter \\$contentTypeId with no type specified\\.$#" count: 1 @@ -2205,16 +2200,6 @@ parameters: count: 1 path: src/lib/Server/Input/Parser/Query.php - - - message: "#^Property Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Query\\:\\:\\$filter \\(Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Query\\\\Criterion\\) does not accept Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Query\\\\Criterion\\|null\\.$#" - count: 1 - path: src/lib/Server/Input/Parser/Query.php - - - - message: "#^Property Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Query\\:\\:\\$query \\(Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Query\\\\Criterion\\) does not accept Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Query\\\\Criterion\\|null\\.$#" - count: 1 - path: src/lib/Server/Input/Parser/Query.php - - message: "#^Method Ibexa\\\\Rest\\\\Server\\\\Input\\\\Parser\\\\RelationCreate\\:\\:parse\\(\\) has parameter \\$data with no value type specified in iterable type array\\.$#" count: 1 diff --git a/src/contracts/Output/ValueObjectVisitor.php b/src/contracts/Output/ValueObjectVisitor.php index 028a17a0e..e53a9fd1f 100644 --- a/src/contracts/Output/ValueObjectVisitor.php +++ b/src/contracts/Output/ValueObjectVisitor.php @@ -167,8 +167,6 @@ protected function serializeSortField($sortField) return 'PRIORITY'; case Location::SORT_FIELD_NAME: return 'NAME'; - case Location::SORT_FIELD_MODIFIED_SUBNODE: - return 'MODIFIED_SUBNODE'; case Location::SORT_FIELD_NODE_ID: return 'NODE_ID'; case Location::SORT_FIELD_CONTENTOBJECT_ID: diff --git a/src/lib/Input/ParserTools.php b/src/lib/Input/ParserTools.php index fee1b08ef..805d8a939 100644 --- a/src/lib/Input/ParserTools.php +++ b/src/lib/Input/ParserTools.php @@ -163,8 +163,6 @@ public function parseDefaultSortField($defaultSortFieldString) return Values\Content\Location::SORT_FIELD_PRIORITY; case 'NAME': return Values\Content\Location::SORT_FIELD_NAME; - case 'MODIFIED_SUBNODE': - return Values\Content\Location::SORT_FIELD_MODIFIED_SUBNODE; case 'NODE_ID': return Values\Content\Location::SORT_FIELD_NODE_ID; case 'CONTENTOBJECT_ID': From d67c517c505dc32934d3517f20f132c931b1315b Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 2 Dec 2024 11:15:02 +0100 Subject: [PATCH 3/4] replaced Criterion with interface --- composer.json | 1 + src/lib/Server/Controller/Content.php | 3 ++- src/lib/Server/Input/Parser/Query.php | 6 ++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index 5724674da..d1506ce96 100644 --- a/composer.json +++ b/composer.json @@ -30,6 +30,7 @@ "ext-xmlwriter": "*", "hautelook/templated-uri-bundle": "^3.4", "ibexa/core": "~5.0.x-dev", + "ibexa/polyfill-php82": "^1.0", "lexik/jwt-authentication-bundle": "^2.8", "symfony/config": "^5.3", "symfony/dependency-injection": "^5.3", diff --git a/src/lib/Server/Controller/Content.php b/src/lib/Server/Controller/Content.php index 1e9e7ac89..8f94555a4 100644 --- a/src/lib/Server/Controller/Content.php +++ b/src/lib/Server/Controller/Content.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Relation; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Contracts\Rest\Exceptions; +use function Ibexa\PolyfillPhp82\iterator_to_array; use Ibexa\Rest\Message; use Ibexa\Rest\Server\Controller as RestController; use Ibexa\Rest\Server\Exceptions\BadRequestException; @@ -359,7 +360,7 @@ public function loadContentVersions($contentId, Request $request) $contentInfo = $this->repository->getContentService()->loadContentInfo($contentId); return new Values\VersionList( - $this->repository->getContentService()->loadVersions($contentInfo), + iterator_to_array($this->repository->getContentService()->loadVersions($contentInfo)), $request->getPathInfo() ); } diff --git a/src/lib/Server/Input/Parser/Query.php b/src/lib/Server/Input/Parser/Query.php index 6b1440841..1ff0d23e7 100644 --- a/src/lib/Server/Input/Parser/Query.php +++ b/src/lib/Server/Input/Parser/Query.php @@ -8,6 +8,7 @@ namespace Ibexa\Rest\Server\Input\Parser; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion as CriterionValue; +use Ibexa\Contracts\Core\Repository\Values\Content\Query\CriterionInterface; use Ibexa\Contracts\Rest\Input\ParsingDispatcher; use Ibexa\Rest\Server\Input\Parser\Criterion as CriterionParser; @@ -89,11 +90,8 @@ abstract protected function buildQuery(); /** * @param array $criteriaArray - * @param \Ibexa\Contracts\Rest\Input\ParsingDispatcher $parsingDispatcher - * - * @return \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion|null A criterion, or a LogicalAnd with a set of Criterion, or null if an empty array was given */ - private function processCriteriaArray(array $criteriaArray, ParsingDispatcher $parsingDispatcher) + private function processCriteriaArray(array $criteriaArray, ParsingDispatcher $parsingDispatcher): ?CriterionInterface { if (count($criteriaArray) === 0) { return null; From a79ed843d9da681d23b5357a56b2034eff09b3c2 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 2 Dec 2024 11:17:57 +0100 Subject: [PATCH 4/4] fix unit tests --- tests/lib/FieldTypeProcessor/ImageProcessorTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/lib/FieldTypeProcessor/ImageProcessorTest.php b/tests/lib/FieldTypeProcessor/ImageProcessorTest.php index c1378a450..41128121e 100644 --- a/tests/lib/FieldTypeProcessor/ImageProcessorTest.php +++ b/tests/lib/FieldTypeProcessor/ImageProcessorTest.php @@ -46,6 +46,7 @@ public function testPostProcessValueHash() self::assertEquals( [ + 'inputUri' => 'var/some_site/223-1-eng-US/Cool-File.jpg', 'path' => '/var/some_site/223-1-eng-US/Cool-File.jpg', 'imageId' => '223-12345', 'variations' => $expectedVariations,