GraphQL\Validator\ValidationContext::getDirective PHP Method

getDirective() public method

public getDirective ( )
    function getDirective()
    {
        return $this->typeInfo->getDirective();
    }

Usage Example

 public function __invoke(ValidationContext $context)
 {
     return [Node::FIELD => ['leave' => function (Field $fieldAST) use($context) {
         $fieldDef = $context->getFieldDef();
         if (!$fieldDef) {
             return Visitor::skipNode();
         }
         $errors = [];
         $argASTs = $fieldAST->arguments ?: [];
         $argASTMap = [];
         foreach ($argASTs as $argAST) {
             $argASTMap[$argAST->name->value] = $argASTs;
         }
         foreach ($fieldDef->args as $argDef) {
             $argAST = isset($argASTMap[$argDef->name]) ? $argASTMap[$argDef->name] : null;
             if (!$argAST && $argDef->getType() instanceof NonNull) {
                 $errors[] = new Error(self::missingFieldArgMessage($fieldAST->name->value, $argDef->name, $argDef->getType()), [$fieldAST]);
             }
         }
         if (!empty($errors)) {
             return $errors;
         }
     }], Node::DIRECTIVE => ['leave' => function (Directive $directiveAST) use($context) {
         $directiveDef = $context->getDirective();
         if (!$directiveDef) {
             return Visitor::skipNode();
         }
         $errors = [];
         $argASTs = $directiveAST->arguments ?: [];
         $argASTMap = [];
         foreach ($argASTs as $argAST) {
             $argASTMap[$argAST->name->value] = $argASTs;
         }
         foreach ($directiveDef->args as $argDef) {
             $argAST = isset($argASTMap[$argDef->name]) ? $argASTMap[$argDef->name] : null;
             if (!$argAST && $argDef->getType() instanceof NonNull) {
                 $errors[] = new Error(self::missingDirectiveArgMessage($directiveAST->name->value, $argDef->name, $argDef->getType()), [$directiveAST]);
             }
         }
         if (!empty($errors)) {
             return $errors;
         }
     }]];
 }
All Usage Examples Of GraphQL\Validator\ValidationContext::getDirective