Current path: home/webdevt/www/schtroumpf.fr/vendor/api-platform/core/src/Symfony/Messenger/Metadata/
?? Go up: /home/webdevt/www/schtroumpf.fr/vendor/api-platform/core/src/Symfony/Messenger
<?php
/*
* This file is part of the API Platform project.
*
* (c) Kévin Dunglas <dunglas@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace ApiPlatform\Symfony\Messenger\Metadata;
use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
use ApiPlatform\Metadata\Resource\ResourceMetadataCollection;
use ApiPlatform\Symfony\Messenger\Processor;
final class MessengerResourceMetadataCollectionFactory implements ResourceMetadataCollectionFactoryInterface
{
/**
* @var ResourceMetadataCollectionFactoryInterface
*/
private $decorated;
public function __construct(ResourceMetadataCollectionFactoryInterface $decorated)
{
$this->decorated = $decorated;
}
/**
* {@inheritDoc}
*/
public function create(string $resourceClass): ResourceMetadataCollection
{
$resourceMetadataCollection = $this->decorated->create($resourceClass);
foreach ($resourceMetadataCollection as $i => $resourceMetadata) {
$operations = $resourceMetadata->getOperations();
if ($operations) {
foreach ($resourceMetadata->getOperations() as $operationName => $operation) {
if (null !== $operation->getProcessor() || false === ($operation->getMessenger() ?? false)) {
continue;
}
$operations->add($operationName, $operation->withProcessor(Processor::class));
}
$resourceMetadata = $resourceMetadata->withOperations($operations);
}
$graphQlOperations = $resourceMetadata->getGraphQlOperations();
if ($graphQlOperations) {
foreach ($graphQlOperations as $operationName => $graphQlOperation) {
if (null !== $graphQlOperation->getProcessor() || false === ($graphQlOperation->getMessenger() ?? false)) {
continue;
}
$graphQlOperations[$operationName] = $graphQlOperation->withProcessor(Processor::class);
}
$resourceMetadata = $resourceMetadata->withGraphQlOperations($graphQlOperations);
}
$resourceMetadataCollection[$i] = $resourceMetadata;
}
return $resourceMetadataCollection;
}
}