Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Completed
Push — master ( 505c07...ad8927 )
by Jérémiah
19s queued 11s
created

ResolverMapTaggedServiceMappingPass   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 9
eloc 24
c 1
b 0
f 0
dl 0
loc 49
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B process() 0 42 9
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Overblog\GraphQLBundle\DependencyInjection\Compiler;
6
7
use Overblog\GraphQLBundle\EventListener\TypeDecoratorListener;
8
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
9
use Symfony\Component\DependencyInjection\ContainerBuilder;
10
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
11
use Symfony\Component\DependencyInjection\Reference;
12
13
final class ResolverMapTaggedServiceMappingPass implements CompilerPassInterface
14
{
15
    private const SERVICE_TAG = 'overblog_graphql.resolver_map';
16
17
    /**
18
     * {@inheritdoc}
19
     */
20
    public function process(ContainerBuilder $container): void
21
    {
22
        $resolverMapsSortedBySchema = [];
23
        $resolverMapsBySchemas = $container->getParameter('overblog_graphql.resolver_maps');
24
        $typeDecoratorListenerDefinition = $container->getDefinition(TypeDecoratorListener::class);
25
26
        foreach ($container->findTaggedServiceIds(self::SERVICE_TAG, true) as $serviceId => $tags) {
27
            foreach ($tags as $tag) {
28
                if (!isset($tag['schema'])) {
29
                    throw new RuntimeException(\sprintf('The "schema" attribute on the "overblog_graphql.resolver_map" tag of the "%s" service is required.', $serviceId));
30
                }
31
32
                if (!isset($resolverMapsBySchemas[$tag['schema']])) {
33
                    throw new RuntimeException(\sprintf('Service "%s" is invalid: schema "%s" specified on the tag "%s" does not exist (known ones are: "%s").', $serviceId, $tag['schema'], self::SERVICE_TAG, \implode('", "', \array_keys($resolverMapsBySchemas))));
34
                }
35
36
                $resolverMapsBySchemas[$tag['schema']][$serviceId] = $tag['priority'] ?? ($resolverMapsBySchemas[$tag['schema']][$serviceId] ?? 0);
37
            }
38
        }
39
40
        foreach ($resolverMapsBySchemas as $schema => $resolverMaps) {
41
            foreach ($resolverMaps as $resolverMap => $priority) {
42
                $resolverMapsSortedBySchema[$schema][$priority][] = $resolverMap;
43
            }
44
        }
45
46
        foreach ($resolverMapsSortedBySchema as $schema => $resolverMaps) {
47
            \krsort($resolverMaps);
48
49
            $resolverMaps = \array_merge(...$resolverMaps);
50
51
            foreach ($resolverMaps as $index => $resolverMap) {
52
                $resolverMaps[$index] = new Reference($resolverMap);
53
            }
54
55
            $typeDecoratorListenerDefinition->addMethodCall('addSchemaResolverMaps', [
56
                $schema,
57
                $resolverMaps,
58
            ]);
59
        }
60
61
        $container->getParameterBag()->remove('overblog_graphql.resolver_maps');
62
    }
63
}
64