From 9233f2dc6d8cbc7d2a63c5420f7bb52851b3b261 Mon Sep 17 00:00:00 2001 From: David Mellen Date: Wed, 4 Sep 2024 14:57:34 +0200 Subject: [PATCH] feat!: move processImage to FilesService and make output configurable --- Classes/Service/FilesService.php | 15 +++++++++++++++ Classes/Service/JsonService.php | 14 -------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Classes/Service/FilesService.php b/Classes/Service/FilesService.php index 04f081e..30fbc80 100644 --- a/Classes/Service/FilesService.php +++ b/Classes/Service/FilesService.php @@ -10,6 +10,7 @@ use TYPO3\CMS\Core\Resource\FileRepository; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Extbase\Service\ImageService; class FilesService { @@ -17,6 +18,8 @@ class FilesService private FileUtility $fileUtility; + private ImageService $imageService; + /** @var mixed[] $defaultConfiguration */ private array $defaultConfiguration; @@ -29,6 +32,18 @@ public function __construct() $this->defaultConfiguration = $fullTypoScript ? $fullTypoScript['lib.']['assetProcessingConfiguration.'] : []; $this->fileUtility = GeneralUtility::makeInstance(FileUtility::class); $this->fileRepository = GeneralUtility::makeInstance(FileRepository::class); + $this->imageService = GeneralUtility::makeInstance(ImageService::class); + } + + /** + * @param mixed[] $configuration + * @return mixed[] + */ + public function processImage(int $uid, array $configuration = []): array + { + $processingConfiguration = $this->getProcessingConfiguration($configuration); + $imageObj = $this->imageService->getImage(strval($uid), null, true); + return $this->fileUtility->process($imageObj, $processingConfiguration); } /** diff --git a/Classes/Service/JsonService.php b/Classes/Service/JsonService.php index d1b97b9..57681fc 100644 --- a/Classes/Service/JsonService.php +++ b/Classes/Service/JsonService.php @@ -4,19 +4,15 @@ namespace Remind\Headless\Service; -use FriendsOfTYPO3\Headless\Utility\FileUtility; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Core\Pagination\PaginationInterface; use TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder; use TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder; -use TYPO3\CMS\Extbase\Service\ImageService; class JsonService { public function __construct( private readonly UriBuilder $uriBuilder, - private readonly ImageService $imageService, - private readonly FileUtility $fileUtility, RequestBuilder $requestBuilder, ) { $extbaseRequest = $requestBuilder->build($this->getRequest()); @@ -91,16 +87,6 @@ public function serializePagination(PaginationInterface $pagination, string $que return $result; } - /** - * TODO: make output configurable, move to FilesService - * @return mixed[] - */ - public function processImage(int $uid): array - { - $imageObj = $this->imageService->getImage(strval($uid), null, true); - return $this->fileUtility->processFile($imageObj); - } - private function getRequest(): ServerRequestInterface { return $GLOBALS['TYPO3_REQUEST'];