Example #1
0
        private static IDictionary <string, object> CoerceInputValueAst(
            Func <string, IEnumerable <KeyValuePair <string, InputObjectField> > > getInputObjectFields,
            InputObjectType input,
            GraphQLObjectValue graphQLObjectValue,
            Dictionary <string, object> result)
        {
            var fields = getInputObjectFields(input.Name);

            foreach (var inputField in fields)
            {
                var fieldName = inputField.Key;
                var field     = inputField.Value;
                var fieldType = field.Type;

                var astValue          = graphQLObjectValue.Fields.SingleOrDefault(v => v.Name.Value == fieldName);
                var coercedFieldValue = CoerceValue(getInputObjectFields, astValue?.Value, fieldType);

                result[fieldName] = coercedFieldValue;
            }

            return(result);
        }
Example #2
0
        private string PrintObjectValue(GraphQLObjectValue node)
        {
            var fields = node.Fields?.Select(PrintObjectField);

            return("{" + Join(fields, ", ") + "}");
        }
Example #3
0
 public virtual GraphQLObjectValue EndVisitObjectValue(GraphQLObjectValue node) => node;
Example #4
0
 public virtual GraphQLObjectValue EndVisitObjectValue(GraphQLObjectValue node)
 {
     return(node);
 }
        public virtual GraphQLObjectValue BeginVisitObjectValue(GraphQLObjectValue node)
        {
            this.BeginVisitNodeCollection(node.Fields);

            return(this.EndVisitObjectValue(node));
        }
 private static GraphQLObjectField GetFieldFromAstObjectValue(GraphQLObjectValue objectAstValue, string fieldName)
 {
     return(objectAstValue.Fields.FirstOrDefault(e => e.Name.Value == fieldName));
 }
Example #7
0
        public override GraphQLObjectValue EndVisitObjectValue(GraphQLObjectValue node)
        {
            this.knownNames = this.knownNameStack.Pop();

            return(base.EndVisitObjectValue(node));
        }
        private IEnumerable <GraphQLException> ValidateObjectFields(GraphQLInputObjectType objectType, GraphQLObjectValue objectValue)
        {
            foreach (var fieldInfo in objectType.GetFieldsInfo())
            {
                var field      = objectValue.Fields.SingleOrDefault(e => e.Name.Value == fieldInfo.Name);
                var fieldType  = fieldInfo.GetGraphQLType(this.schemaRepository);
                var fieldValue = field?.Value;

                var fieldErrors = this.IsValid(fieldType, fieldValue);

                foreach (var fieldError in fieldErrors)
                {
                    yield return(new GraphQLException($"In field \"{fieldInfo.Name}\": {fieldError.Message}"));
                }
            }
        }