public static IStitchingBuilder RenameField( this IStitchingBuilder builder, NameString schemaName, FieldReference field, NameString argumentName, NameString newArgumentName) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (field == null) { throw new ArgumentNullException(nameof(field)); } schemaName.EnsureNotEmpty(nameof(schemaName)); argumentName.EnsureNotEmpty(nameof(argumentName)); newArgumentName.EnsureNotEmpty(nameof(newArgumentName)); return(builder.AddTypeRewriter( new RenameFieldArgumentRewriter( schemaName, field, argumentName, newArgumentName))); }
public static IStitchingBuilder IgnoreField( this IStitchingBuilder builder, NameString schemaName, NameString typeName, NameString fieldName) => IgnoreField(builder, schemaName, new FieldReference(typeName, fieldName));
public static IStitchingBuilder AddSchemaFromHttp( this IStitchingBuilder builder, NameString name) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } name.EnsureNotEmpty(nameof(name)); builder.AddSchema(name, s => { HttpClient httpClient = s.GetRequiredService <IHttpClientFactory>() .CreateClient(name); var request = new HttpQueryRequest { Query = _introspectionQuery }; var queryClient = new HttpQueryClient(); string result = Task.Factory.StartNew( () => queryClient.FetchStringAsync(request, httpClient)) .Unwrap().GetAwaiter().GetResult(); return(IntrospectionDeserializer.Deserialize(result)); }); return(builder); }
public static IStitchingBuilder RenameField( this IStitchingBuilder builder, NameString typeName, NameString fieldName, NameString newFieldName) => RenameField(builder, new FieldReference(typeName, fieldName), newFieldName);
public static IStitchingBuilder IgnoreRootTypes( this IStitchingBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.AddDocumentRewriter( new RemoveRootTypeRewriter())); }
public static IStitchingBuilder AddExtensionsFromFileForService(this IStitchingBuilder stitchingBuilder, string serviceName, IWebHostEnvironment env) { var filePaths = Directory.GetFiles($"{env.ContentRootPath}/Stitching/{serviceName}", "*.graphql"); foreach (var filePath in filePaths) { stitchingBuilder.AddExtensionsFromFile(filePath); } return(stitchingBuilder); }
public static IStitchingBuilder RenameField( this IStitchingBuilder builder, NameString schemaName, NameString typeName, NameString fieldName, NameString argumentName, NameString newArgumentName) => RenameField(builder, schemaName, new FieldReference(typeName, fieldName), argumentName, newArgumentName);
public static IStitchingBuilder AddSchemaFromLocal(this IStitchingBuilder stitchingBuilder, string serviceName, ISchemaBuilder schemaBuilder, IWebHostEnvironment env, IServiceCollection services) { var schemaName = $"AG_{serviceName}"; stitchingBuilder.AddQueryExecutor(schemaName, sp => schemaBuilder.AddServices(sp).Create().MakeExecutable()); // Add extensions (for types that get stitched in from this service) stitchingBuilder.AddExtensionsFromFileForService(serviceName, env); return(stitchingBuilder); }
public static IStitchingBuilder AddDirectiveMergeHandler <T>( this IStitchingBuilder builder) where T : class, IDirectiveMergeHandler { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.AddDirectiveMergeRule( SchemaMergerExtensions.CreateDirectiveMergeRule <T>())); }
public static IStitchingBuilder AddMergeHandler <T>( this IStitchingBuilder builder) where T : ITypeMergeHanlder { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddMergeRule(SchemaMergerExtensions.CreateHandler <T>()); return(builder); }
public static IStitchingBuilder IgnoreType( this IStitchingBuilder builder, NameString typeName) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } typeName.EnsureNotEmpty(nameof(typeName)); return(builder.AddDocumentRewriter( new RemoveTypeRewriter(typeName))); }
public static IStitchingBuilder RenameType( this IStitchingBuilder builder, NameString originalTypeName, NameString newTypeName) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } originalTypeName.EnsureNotEmpty(nameof(originalTypeName)); newTypeName.EnsureNotEmpty(nameof(newTypeName)); return(builder.AddTypeRewriter( new RenameTypeRewriter(originalTypeName, newTypeName))); }
public static IStitchingBuilder AddTypeRewriter( this IStitchingBuilder builder, RewriteTypeDefinitionDelegate rewrite) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (rewrite == null) { throw new ArgumentNullException(nameof(rewrite)); } return(builder.AddTypeRewriter(new DelegateTypeRewriter(rewrite))); }
public static IStitchingBuilder AddSchemaFromHttp(this IStitchingBuilder stitchingBuilder, string serviceName, IWebHostEnvironment env, IConfiguration config, IServiceCollection services) { var clientName = $"{serviceName}Client"; var schemaName = $"AG_{serviceName}"; // Register named HTTP client with schema name services.AddGraphQLClient(schemaName, config[$"{clientName}ApiUrl"]); // Add schema by using same schema name stitchingBuilder.AddSchemaFromHttp(schemaName); // Add extensions (for types that get stitched in from this service) stitchingBuilder.AddExtensionsFromFileForService(serviceName, env); return(stitchingBuilder); }
public static IStitchingBuilder AddExtensionsFromString( this IStitchingBuilder builder, string extensions) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrEmpty(extensions)) { throw new ArgumentException( StitchingResources.Extensions_EmptyOrNull, nameof(extensions)); } builder.AddExtensions(s => Parser.Default.Parse(extensions)); return(builder); }
public static IStitchingBuilder AddExtensionsFromFile( this IStitchingBuilder builder, string path) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrEmpty(path)) { throw new ArgumentException( StitchingResources.ExtensionsFilePath_EmptyOrNull, nameof(path)); } builder.AddExtensions(s => Parser.Default.Parse( File.ReadAllText(path))); return(builder); }
public static IStitchingBuilder AddSchemaFromHttp( this IStitchingBuilder builder, NameString name) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } name.EnsureNotEmpty(nameof(name)); builder.AddSchema(name, s => { HttpClient httpClient = s.GetRequiredService <IHttpClientFactory>() .CreateClient(name); return(IntrospectionClient.LoadSchema(httpClient)); }); return(builder); }
public static IStitchingBuilder AddSchema( this IStitchingBuilder builder, NameString name, ISchema schema) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (schema == null) { throw new ArgumentNullException(nameof(schema)); } name.EnsureNotEmpty(nameof(name)); builder.AddQueryExecutor(name, s => schema.MakeExecutable()); return(builder); }
public static IStitchingBuilder AddSchemaFromString( this IStitchingBuilder builder, NameString name, string schema) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrEmpty(schema)) { throw new ArgumentException( StitchingResources.Schema_EmptyOrNull, nameof(schema)); } name.EnsureNotEmpty(nameof(name)); builder.AddSchema(name, s => Parser.Default.Parse(schema)); return(builder); }
public static IStitchingBuilder AddSchemaFromFile( this IStitchingBuilder builder, NameString name, string path) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrEmpty(path)) { throw new ArgumentException( StitchingResources.SchemaFilePath_EmptyOrNull, nameof(path)); } name.EnsureNotEmpty(nameof(name)); builder.AddSchema(name, s => Utf8GraphQLParser.Parse(File.ReadAllBytes(path))); return(builder); }
public static IStitchingBuilder AddMergeHandler <T>( this IStitchingBuilder builder) where T : class, ITypeMergeHandler => AddTypeMergeHandler <T>(builder);