/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php
70 строк
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2018 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Framework\GraphQl\Query; use Magento\Framework\Exception\RuntimeException; use Magento\Framework\GraphQl\Config\Element\Enum; use Magento\Framework\GraphQl\ConfigInterface; use Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface; use Magento\Framework\Phrase; /** * Processor that looks up definition data of an enum to lookup and convert data as it's specified in the schema. */ class EnumLookup { /** * @var ConfigInterface */ private $typeConfig; /** * @var DataMapperInterface */ private $enumDataMapper; /** * @param ConfigInterface $typeConfig * @param DataMapperInterface $enumDataMapper */ public function __construct(ConfigInterface $typeConfig, DataMapperInterface $enumDataMapper) { $this->typeConfig = $typeConfig; $this->enumDataMapper = $enumDataMapper; } /** * Convert a field value from a db query to an enum value declared as an item in the graphql schema * * @param string $enumName * @param string $fieldValue * @return string * @throws RuntimeException */ public function getEnumValueFromField(string $enumName, string $fieldValue) : string { /** @var Enum $enumObject */ $enumObject = $this->typeConfig->getConfigElement($enumName); if (!($enumObject instanceof Enum)) { throw new RuntimeException( new Phrase('Enum type "%1" not defined', [$enumName]) ); } $mappedValues = $this->enumDataMapper->getMappedEnums($enumName); foreach ($enumObject->getValues() as $enumItem) { if (isset($mappedValues[$enumItem->getName()]) && $mappedValues[$enumItem->getName()] == $fieldValue) { return $enumItem->getValue(); } } return ''; } }