private function mergeResolveConfig(SchemaContainer $schemaContainer, Field $field)
 {
     $config = $field->getResolveConfig();
     $typeName = TypeParser::getFinalType($field->getType());
     if (!$schemaContainer->hasType($typeName)) {
         return;
     }
     $typeConfig = $schemaContainer->getType($typeName)->getResolveConfig();
     $config = array_merge($typeConfig, $config);
     $field->setResolveConfig($config);
 }
Example #2
0
 /**
  * @param Field $field
  */
 private function prepareResolver(Field $field)
 {
     $resolveConfig = $field->getResolveConfig();
     if (isset($resolveConfig['handler'])) {
         $handler = $resolveConfig['handler'];
         if (!isset($this->resolveFactories[$handler])) {
             throw new \Exception(sprintf('Handle named "%s" does not exist', $resolveConfig['handler']));
         }
         $resolver = $this->resolveFactories[$handler]->getFunction($resolveConfig, $field);
         $field->setResolve($resolver);
     }
 }