diff --git a/src/Model/Resolver/Image/Exception/ImageSizeInvalidUserError.php b/src/Model/Resolver/Image/Exception/ImageSizeInvalidUserError.php deleted file mode 100644 index fe75a970e4..0000000000 --- a/src/Model/Resolver/Image/Exception/ImageSizeInvalidUserError.php +++ /dev/null @@ -1,21 +0,0 @@ -imageConfig->getEntityName($entity); - return $this->resolveByEntityId($entity->getId(), $entityName, $type, $size); + return $this->resolveByEntityId($entity->getId(), $entityName, $type); } /** * @param \Shopsys\FrameworkBundle\Model\Product\Product|array $data * @param string|null $type - * @param string|null $size * @return array */ - public function imagesByProductQuery($data, ?string $type, ?string $size): array + public function imagesByProductQuery($data, ?string $type): array { $productId = $data instanceof Product ? $data->getId() : $data['id']; - return $this->resolveByEntityId($productId, static::IMAGE_ENTITY_PRODUCT, $type, $size); + return $this->resolveByEntityId($productId, static::IMAGE_ENTITY_PRODUCT, $type); } /** * @param \Shopsys\FrameworkBundle\Model\Advert\Advert $advert * @param string|null $type - * @param string|null $size * @return array */ - public function imagesByAdvertQuery(Advert $advert, ?string $type, ?string $size): array + public function imagesByAdvertQuery(Advert $advert, ?string $type): array { $entityName = $this->imageConfig->getEntityName($advert); @@ -80,7 +71,6 @@ public function imagesByAdvertQuery(Advert $advert, ?string $type, ?string $size $entityName, $type, ), - $this->getSizeConfigsForAdvert($advert, $type, $size), ); } @@ -88,67 +78,25 @@ public function imagesByAdvertQuery(Advert $advert, ?string $type, ?string $size * @param int $entityId * @param string $entityName * @param string|null $type - * @param string|null $size * @return array */ - protected function resolveByEntityId(int $entityId, string $entityName, ?string $type, ?string $size): array + protected function resolveByEntityId(int $entityId, string $entityName, ?string $type): array { - $sizeConfigs = $this->getSizeConfigs($type, $size, $entityName); $images = $this->frontendApiImageFacade->getImagesByEntityIdAndNameIndexedById($entityId, $entityName, $type); - return $this->getResolvedImages($images, $sizeConfigs); - } - - /** - * @param string|null $type - * @param string|null $size - * @param string $entityName - * @return \Shopsys\FrameworkBundle\Component\Image\Config\ImageSizeConfig[] - */ - protected function getSizeConfigs(?string $type, ?string $size, string $entityName): array - { - $imageConfig = $this->imageConfig->getEntityConfigByEntityName($entityName); - - if ($size === ImageConfig::DEFAULT_SIZE_NAME) { - $size = ImageEntityConfig::WITHOUT_NAME_KEY; - } - - try { - if ($type === null) { - if ($size === null) { - $sizeConfigs = $imageConfig->getSizeConfigs(); - } else { - $sizeConfigs = [$imageConfig->getSizeConfig($size)]; - } - } else { - if ($size === null) { - $sizeConfigs = $imageConfig->getSizeConfigsByType($type); - } else { - $sizeConfigs = [$imageConfig->getSizeConfigByType($type, $size)]; - } - } - } catch (ImageSizeNotFoundException $e) { - throw new ImageSizeInvalidUserError(sprintf('Image size %s not found for %s', $size, $entityName)); - } catch (ImageTypeNotFoundException $e) { - throw new ImageTypeInvalidUserError(sprintf('Image type %s not found for %s', $type, $entityName)); - } - - return $sizeConfigs; + return $this->getResolvedImages($images); } /** * @param \Shopsys\FrameworkBundle\Component\Image\Image[] $images - * @param \Shopsys\FrameworkBundle\Component\Image\Config\ImageSizeConfig[] $sizeConfigs - * @return array + * @return array */ - protected function getResolvedImages(array $images, array $sizeConfigs): array + protected function getResolvedImages(array $images): array { $resolvedImages = []; foreach ($images as $image) { - foreach ($sizeConfigs as $sizeConfig) { - $resolvedImages[] = $this->getResolvedImage($image, $sizeConfig); - } + $resolvedImages[] = $this->getResolvedImage($image); } return $resolvedImages; @@ -156,44 +104,17 @@ protected function getResolvedImages(array $images, array $sizeConfigs): array /** * @param \Shopsys\FrameworkBundle\Component\Image\Image $image - * @param \Shopsys\FrameworkBundle\Component\Image\Config\ImageSizeConfig $sizeConfig - * @return array + * @return array{url: string, name: string|null} */ - protected function getResolvedImage(Image $image, ImageSizeConfig $sizeConfig): array + protected function getResolvedImage(Image $image): array { return [ 'name' => $image->getName(), - 'type' => $image->getType(), - 'position' => $image->getPosition(), - 'width' => $sizeConfig->getWidth(), - 'height' => $sizeConfig->getHeight(), - 'size' => $sizeConfig->getName() === null ? ImageConfig::DEFAULT_SIZE_NAME : $sizeConfig->getName(), 'url' => $this->imageFacade->getImageUrl( $this->domain->getCurrentDomainConfig(), $image, - $sizeConfig->getName(), $image->getType(), ), ]; } - - /** - * @param \Shopsys\FrameworkBundle\Model\Advert\Advert $advert - * @param string|null $type - * @param string|null $size - * @return \Shopsys\FrameworkBundle\Component\Image\Config\ImageSizeConfig[] - */ - protected function getSizeConfigsForAdvert(Advert $advert, ?string $type, ?string $size): array - { - $entityName = static::IMAGE_ENTITY_ADVERT; - - if ($size === null) { - return array_merge( - $this->getSizeConfigs($type, $advert->getPositionName(), $entityName), - $this->getSizeConfigs($type, ImageConfig::ORIGINAL_SIZE_NAME, $entityName), - ); - } - - return $this->getSizeConfigs($type, $size, $entityName); - } } diff --git a/src/Resources/config/graphql-types/AdvertImageDecorator.types.yaml b/src/Resources/config/graphql-types/AdvertImageDecorator.types.yaml index b3b855f27e..a0f6b98ff7 100644 --- a/src/Resources/config/graphql-types/AdvertImageDecorator.types.yaml +++ b/src/Resources/config/graphql-types/AdvertImageDecorator.types.yaml @@ -10,14 +10,11 @@ AdvertImageDecorator: description: "Advert link" images: type: "[Image!]!" - description: "Advert image" - resolve: '@=query("imagesByAdvertQuery", value, args["type"], args["size"])' + description: "Advert images" + resolve: '@=query("imagesByAdvertQuery", value, args["type"])' args: type: type: "String" defaultValue: null - size: - type: "String" - defaultValue: null interfaces: - 'Advert' diff --git a/src/Resources/config/graphql-types/BrandDecorator.types.yaml b/src/Resources/config/graphql-types/BrandDecorator.types.yaml index 8cbcdf25b2..372a2a6126 100644 --- a/src/Resources/config/graphql-types/BrandDecorator.types.yaml +++ b/src/Resources/config/graphql-types/BrandDecorator.types.yaml @@ -28,13 +28,11 @@ BrandDecorator: images: type: "[Image!]!" description: "Brand images" - resolve: '@=query("imagesByEntityQuery", value, args["type"], args["size"])' + resolve: '@=query("imagesByEntityQuery", value, args["type"])' args: type: type: "String" defaultValue: null - size: - type: "String" products: type: "ProductConnection" description: "Paginated and ordered products of brand" diff --git a/src/Resources/config/graphql-types/CategoryDecorator.types.yaml b/src/Resources/config/graphql-types/CategoryDecorator.types.yaml index 7e9dcae5bc..c37fc64700 100644 --- a/src/Resources/config/graphql-types/CategoryDecorator.types.yaml +++ b/src/Resources/config/graphql-types/CategoryDecorator.types.yaml @@ -19,13 +19,11 @@ CategoryDecorator: images: type: "[Image!]!" description: "Category images" - resolve: '@=query("imagesByEntityQuery", value, args["type"], args["size"])' + resolve: '@=query("imagesByEntityQuery", value, args["type"])' args: type: type: "String" defaultValue: null - size: - type: "String" products: type: "ProductConnection" description: "Paginated and ordered products of category" diff --git a/src/Resources/config/graphql-types/ImageDecorator.types.yaml b/src/Resources/config/graphql-types/ImageDecorator.types.yaml index dcf4b53cef..18c1071dc9 100644 --- a/src/Resources/config/graphql-types/ImageDecorator.types.yaml +++ b/src/Resources/config/graphql-types/ImageDecorator.types.yaml @@ -6,22 +6,7 @@ ImageDecorator: fields: name: type: "String" - description: "Name of image usable as alternative text" - type: - type: "String" - description: "Image type" - position: - type: "Int" - description: "Position of image in list" - size: - type: "String" - description: "Image size defined in images.yaml" + description: "Name of the image usable as an alternative text" url: - type: "String" - description: "URL address of image" - width: - type: "Int" - description: "Width in pixels defined in images.yaml" - height: - type: "Int" - description: "Height in pixels defined in images.yaml" + type: "String!" + description: "URL address of the image" diff --git a/src/Resources/config/graphql-types/PaymentDecorator.types.yaml b/src/Resources/config/graphql-types/PaymentDecorator.types.yaml index 436e6786b5..35862a3bf3 100644 --- a/src/Resources/config/graphql-types/PaymentDecorator.types.yaml +++ b/src/Resources/config/graphql-types/PaymentDecorator.types.yaml @@ -26,13 +26,11 @@ PaymentDecorator: images: type: "[Image!]!" description: "Payment images" - resolve: '@=query("imagesByEntityQuery", value, args["type"], args["size"])' + resolve: '@=query("imagesByEntityQuery", value, args["type"])' args: type: type: "String" defaultValue: null - size: - type: "String" transports: type: "[Transport!]!" description: "List of assigned transports" diff --git a/src/Resources/config/graphql-types/ProductDecorator.types.yaml b/src/Resources/config/graphql-types/ProductDecorator.types.yaml index 4a61b26a0f..61221ad7d8 100644 --- a/src/Resources/config/graphql-types/ProductDecorator.types.yaml +++ b/src/Resources/config/graphql-types/ProductDecorator.types.yaml @@ -38,13 +38,11 @@ ProductDecorator: images: type: "[Image]!" description: "Product images" - resolve: '@=query("imagesByProductQuery", value, args["type"], args["size"])' + resolve: '@=query("imagesByProductQuery", value, args["type"])' args: type: type: "String" defaultValue: null - size: - type: "String" brand: type: "Brand" description: "Brand of product" diff --git a/src/Resources/config/graphql-types/TransportDecorator.types.yaml b/src/Resources/config/graphql-types/TransportDecorator.types.yaml index fa762548e5..2ac5eaa81a 100644 --- a/src/Resources/config/graphql-types/TransportDecorator.types.yaml +++ b/src/Resources/config/graphql-types/TransportDecorator.types.yaml @@ -24,15 +24,13 @@ TransportDecorator: description: "Transport price" resolve: '@=query("priceByTransportQuery", value)' images: - type: "[Image]!" + type: "[Image!]!" description: "Transport images" - resolve: '@=query("imagesByEntityQuery", value, args["type"], args["size"])' + resolve: '@=query("imagesByEntityQuery", value, args["type"])' args: type: type: "String" defaultValue: null - size: - type: "String" payments: type: "[Payment!]!" description: "List of assigned payments"