76 lines
2.4 KiB
C#
76 lines
2.4 KiB
C#
using Core.Events;
|
|
using Core.Interfaces;
|
|
using Core.Settings;
|
|
using Core.Yaml;
|
|
using Generator.Infrastructure.OpenApi.Builders;
|
|
|
|
namespace Generator.Infrastructure.OpenApi;
|
|
|
|
public class OpenApiDirector : IGeneratorDirector<OpenApiYaml>
|
|
{
|
|
private DisplayEmitter _emitter;
|
|
|
|
public OpenApiDirector(DisplayEmitter emitter)
|
|
{
|
|
_emitter = emitter;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Launches dotnet server generation
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <param name="config"></param>
|
|
public async Task DotnetServer(OpenApiYaml file, DotnetConfig config)
|
|
{
|
|
var dotnetServerBuilder = new OpenApiDotnetServerBuilder(config, _emitter);
|
|
dotnetServerBuilder.Load(file);
|
|
dotnetServerBuilder.CreateGeneratorConfig();
|
|
dotnetServerBuilder.Generate();
|
|
dotnetServerBuilder.Build();
|
|
await dotnetServerBuilder.ExecuteAllAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Launches dotnet client generation
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <param name="config"></param>
|
|
public async Task DotnetClient(OpenApiYaml file, DotnetConfig config)
|
|
{
|
|
var dotnetClientBuilder = new OpenApiDotnetClientBuilder(config, _emitter);
|
|
dotnetClientBuilder.Load(file);
|
|
dotnetClientBuilder.CreateGeneratorConfig();
|
|
dotnetClientBuilder.Generate();
|
|
dotnetClientBuilder.Build();
|
|
await dotnetClientBuilder.ExecuteAllAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Launches java generation
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <param name="config"></param>
|
|
public async Task Java(OpenApiYaml file, JavaConfig config)
|
|
{
|
|
var javaBuilder = new OpenApiJavaBuilder(config, _emitter);
|
|
javaBuilder.Load(file);
|
|
javaBuilder.CreateGeneratorConfig();
|
|
javaBuilder.Generate();
|
|
javaBuilder.Build();
|
|
await javaBuilder.ExecuteAllAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Launches javascript generation
|
|
/// </summary>
|
|
/// <param name="file"></param>
|
|
/// <param name="config"></param>
|
|
public async Task Javascript(OpenApiYaml file, JavascriptConfig config)
|
|
{
|
|
_emitter.Warn(this, "Javascript generation is temporally disabled");
|
|
/*var jsBuilder = new OpenApiJavascriptBuilder(config, _emitter);
|
|
jsBuilder.Load(file);
|
|
jsBuilder.Generate();
|
|
await jsBuilder.ExecuteAllAsync();*/
|
|
}
|
|
} |