|
23 | 23 | use TheCodingMachine\GraphQLite\AnnotationReader; |
24 | 24 | use TheCodingMachine\GraphQLite\Annotations\Mutation; |
25 | 25 | use TheCodingMachine\GraphQLite\Annotations\Query; |
26 | | -use TheCodingMachine\Graphqlite\Bundle\Mappers\ContainerFetcherTypeMapper; |
27 | 26 | use TheCodingMachine\Graphqlite\Bundle\QueryProviders\ControllerQueryProvider; |
| 27 | +use TheCodingMachine\GraphQLite\FieldsBuilder; |
28 | 28 | use TheCodingMachine\GraphQLite\FieldsBuilderFactory; |
29 | 29 | use TheCodingMachine\GraphQLite\InputTypeGenerator; |
30 | 30 | use TheCodingMachine\GraphQLite\InputTypeUtils; |
| 31 | +use TheCodingMachine\GraphQLite\Mappers\CompositeTypeMapper; |
31 | 32 | use TheCodingMachine\GraphQLite\Mappers\GlobTypeMapper; |
32 | 33 | use TheCodingMachine\GraphQLite\Mappers\RecursiveTypeMapperInterface; |
| 34 | +use TheCodingMachine\GraphQLite\Mappers\Root\CompositeRootTypeMapper; |
33 | 35 | use TheCodingMachine\GraphQLite\Mappers\StaticTypeMapper; |
34 | 36 | use TheCodingMachine\GraphQLite\NamingStrategy; |
35 | 37 | use TheCodingMachine\GraphQLite\TypeGenerator; |
@@ -130,8 +132,7 @@ public function process(ContainerBuilder $container) |
130 | 132 | $queryProvider->setPrivate(true); |
131 | 133 | $queryProvider->setFactory([self::class, 'createQueryProvider']); |
132 | 134 | $queryProvider->addArgument(new Reference($id)); |
133 | | - $queryProvider->addArgument(new Reference(FieldsBuilderFactory::class)); |
134 | | - $queryProvider->addArgument(new Reference(RecursiveTypeMapperInterface::class)); |
| 135 | + $queryProvider->addArgument(new Reference(FieldsBuilder::class)); |
135 | 136 | $queryProvider->addTag('graphql.queryprovider'); |
136 | 137 | $container->setDefinition($controllerIdentifier, $queryProvider); |
137 | 138 | } |
@@ -174,14 +175,22 @@ public function process(ContainerBuilder $container) |
174 | 175 | $definition = $container->getDefinition(StaticTypeMapper::class); |
175 | 176 | $definition->addMethodCall('setNotMappedTypes', [$customNotMappedTypes]); |
176 | 177 | } |
| 178 | + |
| 179 | + // Register type mappers |
| 180 | + $typeMapperServices = $container->findTaggedServiceIds('graphql.type_mapper'); |
| 181 | + $compositeTypeMapper = $container->getDefinition(CompositeTypeMapper::class); |
| 182 | + foreach ($typeMapperServices as $id => $tags) { |
| 183 | + // add the transport service to the TransportChain service |
| 184 | + $compositeTypeMapper->addMethodCall('addTypeMapper', [new Reference($id)]); |
| 185 | + } |
177 | 186 | } |
178 | 187 |
|
179 | 188 | /** |
180 | 189 | * @param object $controller |
181 | 190 | */ |
182 | | - public static function createQueryProvider($controller, FieldsBuilderFactory $fieldsBuilderFactory, RecursiveTypeMapperInterface $recursiveTypeMapper): ControllerQueryProvider |
| 191 | + public static function createQueryProvider($controller, FieldsBuilder $fieldsBuilder): ControllerQueryProvider |
183 | 192 | { |
184 | | - return new ControllerQueryProvider($controller, $fieldsBuilderFactory->buildFieldsBuilder($recursiveTypeMapper)); |
| 193 | + return new ControllerQueryProvider($controller, $fieldsBuilder); |
185 | 194 | } |
186 | 195 |
|
187 | 196 | /** |
|
0 commit comments