Import from internal git
This commit is contained in:
27
Generator/Mappers/CredentialsMapper.cs
Normal file
27
Generator/Mappers/CredentialsMapper.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using Core.Actions;
|
||||
using Core.Dto.Settings;
|
||||
using Core.Settings;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class CredentialsMapper
|
||||
{
|
||||
public static CredentialsConfig Map(this CredentialsConfigDto dto)
|
||||
=> new()
|
||||
{
|
||||
Email = dto.Email,
|
||||
Token = dto.Token,
|
||||
Username = dto.Username,
|
||||
Password = dto.Password,
|
||||
AlwaysAuth = dto.AlwaysAuth
|
||||
};
|
||||
|
||||
public static PackageDeletion ToPackageDeletion(this CredentialsConfigDto dto)
|
||||
{
|
||||
return new PackageDeletion
|
||||
{
|
||||
Username = dto.Username,
|
||||
Password = dto.Password
|
||||
};
|
||||
}
|
||||
}
|
||||
54
Generator/Mappers/DotnetMapper.cs
Normal file
54
Generator/Mappers/DotnetMapper.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using Core;
|
||||
using Core.Dto.Settings;
|
||||
using Core.Settings;
|
||||
using Generator.DataSource.Settings;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class DotnetMapper
|
||||
{
|
||||
public static DotnetConfig Map(this DotnetConfigDto dto, ConfigManager configManager, ISpecFile file)
|
||||
{
|
||||
var specName = file.Name;
|
||||
var specFolder = file.Folder;
|
||||
var generationFolder = configManager.GetGeneral().GenerationFolder;
|
||||
var apiFolder = configManager.GetGeneral().ApiFolder;
|
||||
var templatesConfig = configManager.Templates;
|
||||
var baseConfig = configManager.GetBase();
|
||||
var openApiConfig = configManager.OpenApi.Map(configManager, specFolder, specName);
|
||||
var publishConfig = configManager.Publish;
|
||||
var credConfig = configManager.Credentials;
|
||||
var d = new DotnetConfig
|
||||
{
|
||||
LocalRoot = baseConfig.LocalRoot,
|
||||
DockerRoot = baseConfig.DockerRoot,
|
||||
GenerationImage = configManager.DockerImages.OpenApiGeneratorImage,
|
||||
BuildImage = configManager.DockerImages.DotnetSdkImage,
|
||||
Invite = baseConfig.Invite,
|
||||
|
||||
SpecFile = apiFolder.ConcatenateWith([specFolder, $"{specName}{openApiConfig.SpecExtension}"]),
|
||||
OpenApi = openApiConfig.Folder,
|
||||
|
||||
PackageFolder = "src",
|
||||
PackageFile = file.NugetPackage,
|
||||
|
||||
TemplateFolder = new Location(templatesConfig.Folder),
|
||||
CommonFolder = generationFolder.ConcatenateWith([specFolder, dto.CommonFolder, specName]),
|
||||
ServerFolder = generationFolder.ConcatenateWith([specFolder, dto.ServerFolder, specName]),
|
||||
ClientFolder = generationFolder.ConcatenateWith([specFolder, dto.ClientFolder, specName]),
|
||||
|
||||
ConfigFile = openApiConfig.GeneratorConfigFile,
|
||||
IgnoreFile = openApiConfig.GeneratorIgnoreFile,
|
||||
|
||||
ServerConfigTemplate = new Location([templatesConfig.Folder, templatesConfig.DotnetServerGeneratorConfig]),
|
||||
ClientConfigTemplate = new Location([templatesConfig.Folder, templatesConfig.DotnetClientGeneratorConfig]),
|
||||
ServerIgnoreTemplate = new Location([templatesConfig.Folder, templatesConfig.ServerIgnore]),
|
||||
ClientIgnoreTemplate = new Location([templatesConfig.Folder, templatesConfig.ClientIgnore]),
|
||||
Registry = publishConfig.NugetRegistry,
|
||||
AuthorizationToken = credConfig.Token
|
||||
|
||||
};
|
||||
|
||||
return d;
|
||||
}
|
||||
}
|
||||
49
Generator/Mappers/JavaMapper.cs
Normal file
49
Generator/Mappers/JavaMapper.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using Core;
|
||||
using Core.Dto.Settings;
|
||||
using Core.Settings;
|
||||
using Generator.DataSource.Settings;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class JavaMapper
|
||||
{
|
||||
public static JavaConfig Map(this JavaConfigDto dto, ConfigManager configManager, ISpecFile file)
|
||||
{
|
||||
var apiFolder = configManager.GetGeneral().ApiFolder;
|
||||
var specFolder = file.Folder;
|
||||
var specName = file.Name;
|
||||
var templatesConfig = configManager.Templates;
|
||||
var pubConfig = configManager.Publish;
|
||||
var credConfig = configManager.Credentials;
|
||||
var openApiConfig = configManager.OpenApi.Map(configManager, specFolder, specName);;
|
||||
var generationFolder = configManager.GetGeneral().GenerationFolder;
|
||||
var baseConfig = configManager.GetBase();
|
||||
var j = new JavaConfig
|
||||
{
|
||||
LocalRoot = baseConfig.LocalRoot,
|
||||
DockerRoot = baseConfig.DockerRoot,
|
||||
Invite = baseConfig.Invite,
|
||||
|
||||
BuildImage = configManager.DockerImages.MavenImage,
|
||||
GenerationImage = configManager.DockerImages.OpenApiGeneratorImage,
|
||||
|
||||
ServerFolder = generationFolder.ConcatenateWith([specFolder, dto.Folder, specName]),
|
||||
|
||||
ConfigOutput = generationFolder.ConcatenateWith(openApiConfig.GeneratorConfigFile),
|
||||
|
||||
SpecFile = apiFolder.ConcatenateWith([specFolder, $"{specName}{openApiConfig.SpecExtension}"]),
|
||||
ConfigFile = openApiConfig.GeneratorConfigFile,
|
||||
OpenApi = configManager.OpenApi.Map(configManager, specFolder, specName).Folder,
|
||||
|
||||
TemplateFolder = new Location(templatesConfig.Folder),
|
||||
ServerConfigTemplate = new Location([templatesConfig.Folder, templatesConfig.JavaGeneratorConfig]),
|
||||
Registry = pubConfig.MavenRegistry,
|
||||
Artifact = $"{file.Name}-api",
|
||||
Version = file.Version,
|
||||
Username = credConfig.Username,
|
||||
Password = credConfig.Password,
|
||||
};
|
||||
|
||||
return j;
|
||||
}
|
||||
}
|
||||
36
Generator/Mappers/JavascriptMapper.cs
Normal file
36
Generator/Mappers/JavascriptMapper.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using Core;
|
||||
using Core.Dto.Settings;
|
||||
using Core.Settings;
|
||||
using Generator.DataSource.Settings;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class JavascriptMapper
|
||||
{
|
||||
public static JavascriptConfig Map(this JavascriptConfigDto dto, ConfigManager configManager, ISpecFile file)
|
||||
{
|
||||
var apiFolder = configManager.GetGeneral().ApiFolder;
|
||||
var specFolder = file.Folder;
|
||||
var specName = file.Name;
|
||||
var templatesConfig = configManager.Templates;
|
||||
var openApiConfig = configManager.OpenApi.Map(configManager, specFolder, specName);
|
||||
var generationFolder = configManager.GetGeneral().GenerationFolder;
|
||||
var baseConfig = configManager.GetBase();
|
||||
return new JavascriptConfig
|
||||
{
|
||||
LocalRoot = baseConfig.LocalRoot,
|
||||
DockerRoot = baseConfig.DockerRoot,
|
||||
GenerationImage = configManager.DockerImages.OpenApiGeneratorImage,
|
||||
BuildImage = configManager.DockerImages.JavascriptImage,
|
||||
Invite = baseConfig.Invite,
|
||||
|
||||
ClientFolder = generationFolder.ConcatenateWith([specFolder, dto.Folder, specName]),
|
||||
SpecFile = apiFolder.ConcatenateWith([specFolder, $"{specName}{openApiConfig.SpecExtension}"]),
|
||||
PackageName = file.NpmPackage,
|
||||
OpenApiVersion = file.Version,
|
||||
Registry = configManager.Publish.NpmRegistry,
|
||||
TemplateFolder = new Location(templatesConfig.Folder),
|
||||
OpenApi = configManager.OpenApi.Map(configManager, specFolder, specName).Folder
|
||||
};
|
||||
}
|
||||
}
|
||||
92
Generator/Mappers/OpenApiYamlMapper.cs
Normal file
92
Generator/Mappers/OpenApiYamlMapper.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using Core.Dto.Yaml;
|
||||
using Core.Exceptions;
|
||||
using Core.SpecConfig;
|
||||
using Core.Yaml;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class OpenApiYamlMapper
|
||||
{
|
||||
public static OpenApiYaml ToModel(this OpenApiYamlDto dto, string loc)
|
||||
{
|
||||
ISet<string> models = new HashSet<string>();
|
||||
if (dto.Components is not null && dto.Components.TryGetValue("schemas", out var component))
|
||||
{
|
||||
models = component.Keys.ToHashSet();
|
||||
}
|
||||
|
||||
return new OpenApiYaml(loc)
|
||||
{
|
||||
Info = dto.Info,
|
||||
Openapi = dto.Openapi,
|
||||
Tags = dto.Tags,
|
||||
Models = models,
|
||||
IgnoredModels = new HashSet<string>(),
|
||||
};
|
||||
}
|
||||
|
||||
public static Dictionary<string, YamlConfig> Map(this SpecConfigDto dto)
|
||||
{
|
||||
var result = new Dictionary<string, YamlConfig>();
|
||||
|
||||
foreach (var config in dto.Packages)
|
||||
{
|
||||
var yaml = new YamlConfig
|
||||
{
|
||||
Priority = config.Priority,
|
||||
ModelSuffix = dto.ModelSuffix,
|
||||
JavaGroup = dto.JavaGroup,
|
||||
NugetPackage = config.DotnetPackage,
|
||||
NpmPackage = config.JavascriptPackage,
|
||||
KeepModels = config.KeepModels,
|
||||
Type = ConvertSpecType(config.Type),
|
||||
PackageTypes = ConvertPackagesTypes(dto.PackageTypes)
|
||||
};
|
||||
result.Add(config.Name, yaml);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private static PackageTypes ConvertPackagesTypes(Dictionary<string, List<string>> dto)
|
||||
{
|
||||
var res = new PackageTypes();
|
||||
foreach (var d in dto)
|
||||
{
|
||||
var language = d.Key.ToLower() switch
|
||||
{
|
||||
"dotnet" => Language.Dotnet,
|
||||
"java" => Language.Java,
|
||||
"javascript" => Language.Javascript,
|
||||
_ => throw new ConfigException($"Currently supported languages are dotnet, java and javascript. {d.Key} is not one of them. Fix it or consequences")
|
||||
};
|
||||
|
||||
var generationTypes = d.Value.Select(t => t.ToLower() switch
|
||||
{
|
||||
"server" => GenerationType.Server,
|
||||
"common" => GenerationType.Common,
|
||||
"client" => GenerationType.Client,
|
||||
_ => throw new ConfigException($"Currently supported generation types are server, common and client. {t} is not one of them. Fix it or consequences")
|
||||
}).ToList();
|
||||
|
||||
generationTypes.ForEach(gt =>
|
||||
{
|
||||
if (!res.TryAdd(language, gt))
|
||||
res.Add(language, [gt]);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
private static SpecType ConvertSpecType(string type)
|
||||
{
|
||||
return type.ToLower() switch
|
||||
{
|
||||
"api" => SpecType.Api,
|
||||
"model" => SpecType.Model,
|
||||
_ => throw new ConfigException($"Currently supported spec types are api and model. {type} is not one of them. Fix it or consequences")
|
||||
};
|
||||
}
|
||||
}
|
||||
18
Generator/Mappers/PackageDataMapper.cs
Normal file
18
Generator/Mappers/PackageDataMapper.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using Core;
|
||||
using Core.Dto;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class PackageDataMapper
|
||||
{
|
||||
public static List<PackageData> Map(this List<PackageDataDto> dto)
|
||||
{
|
||||
return dto.Select(pdd
|
||||
=> new PackageData()
|
||||
{
|
||||
Id = pdd.Id,
|
||||
Name = pdd.Name,
|
||||
Version = pdd.Version
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
76
Generator/Mappers/SettingsMapper.cs
Normal file
76
Generator/Mappers/SettingsMapper.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using Core;
|
||||
using Core.Dto;
|
||||
using Core.Dto.Settings;
|
||||
using Core.Settings;
|
||||
using Generator.DataSource.Settings;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class SettingsMapper
|
||||
{
|
||||
public static DefaultArgumentsConfig Map(this DefaultArgumentsConfigDto dto, ArgumentsDto args)
|
||||
{
|
||||
|
||||
var identifier = args.SpecName ?? dto.SpecIdentifier;
|
||||
return new DefaultArgumentsConfig
|
||||
{
|
||||
SpecIdentifier = identifier,
|
||||
};
|
||||
}
|
||||
|
||||
public static DockerImagesConfig Map(this DockerImagesConfigDto dto)
|
||||
=> new()
|
||||
{
|
||||
JavaImage = dto.MavenImage,
|
||||
DotnetSdkImage = dto.DotnetSdkImage,
|
||||
OpenApiGeneratorImage = dto.OpenApiGeneratorImage,
|
||||
JavascriptImage = dto.JavascriptImage,
|
||||
};
|
||||
|
||||
public static BaseConfig Map(this EnvironmentConfigDto dto)
|
||||
=> new()
|
||||
{
|
||||
Invite = dto.Invite,
|
||||
LocalRoot = new Location(dto.LocalRoot),
|
||||
DockerRoot = new Location(dto.DockerRoot),
|
||||
TemplateFolder = null,
|
||||
};
|
||||
|
||||
public static PublishConfig Map(this PublishConfigDto dto)
|
||||
=> new()
|
||||
{
|
||||
MavenRegistry = dto.MavenRegistry,
|
||||
NpmRegistry = dto.NpmRegistry,
|
||||
NugetRegistry = dto.NugetRegistry
|
||||
};
|
||||
|
||||
public static OpenApiConfig Map(this OpenApiConfigDto dto, ConfigManager configManager, string folder, string name)
|
||||
{
|
||||
var apiFolder = configManager.GetGeneral().ApiFolder;
|
||||
|
||||
var config = new OpenApiConfig
|
||||
{
|
||||
Folder = new Location(dto.OutputFolder),
|
||||
GeneratorConfigFile = new Location(dto.GeneratorConfigFile),
|
||||
GeneratorIgnoreFile = new Location(dto.GeneratorIgnoreFile),
|
||||
SpecFile = apiFolder.ConcatenateWith([folder, $"{name}{dto.SpecExtension}"]),
|
||||
SpecConfig = apiFolder.ConcatenateWith([folder, $"{name}{dto.ConfigIdentifier}{dto.ConfigExtension}"]),
|
||||
SpecExtension = dto.SpecExtension,
|
||||
SchemasIdentifier = dto.SchemasIdentifier,
|
||||
ConfigIdentifier = $"{dto.ConfigIdentifier}{dto.ConfigExtension}",
|
||||
};
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
|
||||
public static GeneralConfig Map(this GeneralConfigDto dto)
|
||||
=> new()
|
||||
{
|
||||
ApiFolder = new Location(dto.ApiFolder),
|
||||
GenerationFolder = new Location(dto.OutputFolder),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
21
Generator/Mappers/TemplateMapper.cs
Normal file
21
Generator/Mappers/TemplateMapper.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using Core;
|
||||
using Core.Dto.Settings;
|
||||
using Core.Settings;
|
||||
|
||||
namespace Generator.Mappers;
|
||||
|
||||
public static class TemplateMapper
|
||||
{
|
||||
public static TemplatesConfig Map(this TemplatesConfigDto dto)
|
||||
=> new()
|
||||
{
|
||||
Folder = new Location(dto.Folder),
|
||||
PlantUml = new Location([dto.Folder, dto.PlantUml]),
|
||||
DotnetServerGeneratorConfig = new Location(dto.DotnetServerGeneratorConfig),
|
||||
DotnetClientGeneratorConfig = new Location(dto.DotnetClientGeneratorConfig),
|
||||
JavaGeneratorConfig = new Location(dto.JavaGeneratorConfig),
|
||||
ServerIgnore = new Location(dto.ServerIgnore),
|
||||
ClientIgnore = new Location(dto.ClientIgnore),
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user