public override GraphQLOperation VisitGqlTypeDef(EntityGraphQLParser.GqlTypeDefContext context) { var argName = context.gqlVar().GetText().TrimStart('$'); var isArray = context.arrayType != null; var type = isArray ? context.arrayType.type.GetText() : context.type.GetText(); var required = context.required != null; if (required && !variables.ContainsKey(argName)) { throw new QueryException($"Missing required variable '{argName}' on query '{this.operation.Name}'"); } this.operation.AddArgument(argName, type, isArray, required); return(this.operation); }
public override GraphQLOperation VisitGqlTypeDef(EntityGraphQLParser.GqlTypeDefContext context) { var argName = context.gqlVar().GetText().TrimStart('$'); var isArray = context.arrayType != null; var type = isArray ? context.arrayType.type.GetText() : context.type.GetText(); var required = context.required != null; CompiledQueryResult defaultValue = null; if (context.defaultValue != null) { defaultValue = EqlCompiler.CompileWith(context.defaultValue.GetText(), null, schemaProvider, null, variables); } if (required && !variables.ContainsKey(argName) && defaultValue == null) { throw new QueryException($"Missing required variable '{argName}' on query '{this.operation.Name}'"); } this.operation.AddArgument(argName, type, isArray, required, defaultValue != null ? defaultValue.ExpressionResult : null); return(this.operation); }