Import from internal git
This commit is contained in:
45
Generator/Repo/ApiAnalyzer.cs
Normal file
45
Generator/Repo/ApiAnalyzer.cs
Normal 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());
|
||||
}
|
||||
}
|
||||
26
Generator/Repo/ExportRepo.cs
Normal file
26
Generator/Repo/ExportRepo.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
58
Generator/Repo/GenerateRepo.cs
Normal file
58
Generator/Repo/GenerateRepo.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
22
Generator/Repo/PreGenerationRepo.cs
Normal file
22
Generator/Repo/PreGenerationRepo.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
48
Generator/Repo/PublisherRepo.cs
Normal file
48
Generator/Repo/PublisherRepo.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
32
Generator/Repo/RepositoryActions.cs
Normal file
32
Generator/Repo/RepositoryActions.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user