GraphQL\Validator\Rules\DefaultValuesOfCorrectType::__invoke PHP Метод

__invoke() публичный Метод

public __invoke ( ValidationContext $context )
$context GraphQL\Validator\ValidationContext
    public function __invoke(ValidationContext $context)
    {
        return [NodeKind::VARIABLE_DEFINITION => function (VariableDefinitionNode $varDefNode) use($context) {
            $name = $varDefNode->variable->name->value;
            $defaultValue = $varDefNode->defaultValue;
            $type = $context->getInputType();
            if ($type instanceof NonNull && $defaultValue) {
                $context->reportError(new Error(static::defaultForNonNullArgMessage($name, $type, $type->getWrappedType()), [$defaultValue]));
            }
            if ($type && $defaultValue) {
                $errors = DocumentValidator::isValidLiteralValue($type, $defaultValue);
                if (!empty($errors)) {
                    $context->reportError(new Error(static::badValueForDefaultArgMessage($name, $type, Printer::doPrint($defaultValue), $errors), [$defaultValue]));
                }
            }
            return Visitor::skipNode();
        }, NodeKind::SELECTION_SET => function () {
            return Visitor::skipNode();
        }, NodeKind::FRAGMENT_DEFINITION => function () {
            return Visitor::skipNode();
        }];
    }