public function resolveArgs(FieldInterface $value) { if ($value->hasArguments()) { return $value->getArguments(); } return []; }
public function assertValidResolvedValueForField(FieldInterface $field, $resolvedValue) { if ($field->getType()->getKind() == TypeMap::KIND_NON_NULL && is_null($resolvedValue)) { throw new ResolveException(sprintf('Cannot return null for non-nullable field "%s"', $field->getName())); } if (!$field->getType()->getNullableType()->isValidValue($resolvedValue)) { throw new ResolveException(sprintf('Not valid resolved type for field "%s"', $field->getName())); } }
/** * @return AbstractType */ public function getReturnType() { return $this->field->getType(); }
protected function parseArgumentsValues(FieldInterface $field, AstFieldInterface $ast) { $values = []; $defaults = []; foreach ($field->getArguments() as $argument) { /** @var $argument InputField */ if ($argument->getConfig()->has('default')) { $defaults[$argument->getName()] = $argument->getConfig()->getDefaultValue(); } } foreach ($ast->getArguments() as $astArgument) { $argument = $field->getArgument($astArgument->getName()); $argumentType = $argument->getType()->getNullableType(); $values[$argument->getName()] = $argumentType->parseValue($astArgument->getValue()); if (isset($defaults[$argument->getName()])) { unset($defaults[$argument->getName()]); } } return array_merge($values, $defaults); }