Import from internal git

This commit is contained in:
2025-10-11 13:08:09 +02:00
commit 97aaa715dc
175 changed files with 7014 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
using Core;
using Core.Helpers;
using Generator.Daos;
using Generator.DataSource.Yaml;
namespace Generator.Repo;
public class ApiAnalyzer
{
private readonly EnvironmentDao _envDao;
private readonly OpenApiDao _openApiDao;
public ApiAnalyzer(OpenApiDao openApiDao, EnvironmentDao envDao)
{
_envDao = envDao;
_openApiDao = openApiDao;
}
public IEnumerable<Location> ListSpecifications()
{
var res = new List<string>();
var directories = Directory.GetDirectories(_envDao.ApiFolder().ToString());
foreach (var d in directories) res.AddRange(Directory.EnumerateFiles(d));
return res
.Select(s => new Location(s))
.Where(s => s.HasExtension("yaml"));
}
public bool CanBeGenerated(string folder, string spec)
{
var extractor = new OpenApiYamlExtractor();
var path = _openApiDao.ConfigOf($"{folder}/{folder}");
var configs = extractor.LoadConfigs(path.ToString());
return configs.ContainsKey(spec);
}
public string GetText(string folder, string spec)
{
var path = _envDao.ApiFolder().ConcatenateWith([folder, $"{spec}.yaml"]);
return PathHelper.TextFrom(path.ToString());
}
}

View File

@@ -0,0 +1,26 @@
using Core;
using Core.Templates;
using Generator.Daos;
using Generator.Infrastructure.Export;
namespace Generator.Repo;
public class ExportRepo
{
private readonly TemplateDao _templateDao;
private readonly Exporter _exporter;
public ExportRepo(TemplateDao templateDao)
{
_templateDao = templateDao;
_exporter = new Exporter(new MustacheTemplateFactory());
}
public void PlantUml(ISpecFile file)
{
var export = _templateDao.PlantUml(file);
_exporter.PlantUml(export, file);
}
}

View File

@@ -0,0 +1,58 @@
using Core;
using Core.Helpers;
using Core.Interfaces;
using Core.SpecConfig;
using Core.Yaml;
using Generator.Daos;
using Generator.Infrastructure.OpenApi;
namespace Generator.Repo;
public class GenerateRepo
{
private readonly IGeneratorDirector<OpenApiYaml> _genDirector;
private readonly DotnetDao _dotnetDao;
private readonly JavaDao _javaDao;
private readonly JavascriptDao _javascriptDao;
public GenerateRepo(
OpenApiDirector genDirector,
DotnetDao dotnetDao,
JavaDao javaDao,
JavascriptDao jsDao)
{
_genDirector = genDirector;
_dotnetDao = dotnetDao;
_javaDao = javaDao;
_javascriptDao = jsDao;
}
public async Task GenerateDotnet(GenerationType type, ISpecFile specFile)
{
var file = TypeHelper.SafeCast<ISpecFile, OpenApiYaml>(specFile);
var config = _dotnetDao.GetDotnetGenerate(type, specFile);
if (type != GenerationType.Client)
{
await _genDirector.DotnetServer(file, config);
}
else
{
await _genDirector.DotnetClient(file, config);
}
}
public async Task GenerateJava(ISpecFile specFile)
{
var file = TypeHelper.SafeCast<ISpecFile, OpenApiYaml>(specFile);
var config = _javaDao.GetJavaGenerate(specFile);
await _genDirector.Java(file, config);
}
public async Task GenerateJavascript(ISpecFile specFile)
{
var file = TypeHelper.SafeCast<ISpecFile, OpenApiYaml>(specFile);
var config = _javascriptDao.GetJavascript(file);
await _genDirector.Javascript(file, config);
}
}

View File

@@ -0,0 +1,22 @@
using Core.Process;
using Core.SpecConfig;
using Generator.Daos;
using Generator.DataSource.Yaml;
namespace Generator.Repo;
public class PreGenerationRepo
{
private readonly YamlDirector _specDirector;
public PreGenerationRepo(OpenApiDao openApiDao)
{
_specDirector = new YamlDirector(openApiDao);
}
public GenerationProcess GetProcess(string specPath, GenerationType? generationType, PublishType publishType)
{
var file = _specDirector.BuildYaml(specPath);
return new GenerationProcess(file, publishType, generationType);
}
}

View File

@@ -0,0 +1,48 @@
using Core;
using Core.Events;
using Core.SpecConfig;
using Generator.Daos;
using Generator.Infrastructure.Publication;
using YamlDotNet.Core;
namespace Generator.Repo;
public class PublisherRepo
{
private readonly Publisher _publisher;
private readonly DotnetDao _dotnetDao;
private readonly JavaDao _javaDao;
private readonly JavascriptDao _javascriptDao;
public PublisherRepo(
EnvironmentDao envDao,
DotnetDao dotnetDao,
JavaDao javaDao,
JavascriptDao jsDao,
DisplayEmitter emitter)
{
_publisher = new Publisher(envDao.Invite, emitter);
_dotnetDao = dotnetDao;
_javaDao = javaDao;
_javascriptDao = jsDao;
}
public async Task PublishDotnet(GenerationType type, ISpecFile file)
{
var config = _dotnetDao.GetDotnetPublish(type, file);
await _publisher.PublishNugget(config);
}
public async Task PublishJava(GenerationType type, ISpecFile file)
{
var config = _javaDao.GetJavaPublish(type, file);
await _publisher.PublishMaven(config);
}
public async Task PublishJavascript(GenerationType type, ISpecFile file)
{
var config = _javascriptDao.GetJavascriptPublish(type, file);
await _publisher.PublishNpm(config);
}
}

View File

@@ -0,0 +1,32 @@
using Core;
using Core.Interfaces;
using Core.SpecConfig;
using Generator.Daos;
using Generator.DataSource.Packages;
using Generator.Mappers;
namespace Generator.Repo;
public class RepositoryActions
{
private readonly CredentialsDao _credentialsDao;
private readonly IRepositoryRequest _requester;
public RepositoryActions(CredentialsDao credentialsDao)
{
_credentialsDao = credentialsDao;
_requester = new NexusRequester(_credentialsDao.Username, _credentialsDao.Password);
}
public async Task<List<PackageData>> GetVersions(Language language, string package)
{
var packages = await _requester.GetVersions(language, package);
return packages.Map();
}
public async Task DeleteVersion(string packageId)
{
await _requester.DeleteVersion(packageId);
}
}