Files
api-generator/Generator/Services/GenerationService.cs
2025-10-11 13:08:09 +02:00

68 lines
1.9 KiB
C#

using Core.Exceptions;
using Core.SpecConfig;
using Generator.Repo;
namespace Generator.Services;
public class GenerationService
{
private readonly GenerateRepo _repo;
private readonly PublicationService _pubService;
public GenerationService(PublicationService publicationService, GenerateRepo repo)
{
_repo = repo;
_pubService = publicationService;
}
public async Task Launch(ProcessTask task)
{
switch (task.Language)
{
case Language.Dotnet:
await LaunchDotnet(task);
break;
case Language.Java:
await LaunchJava(task);
break;
case Language.Javascript:
await LaunchJavascript(task);
break;
default:
throw new WeirdException("You broke me :(");
}
}
public async Task LaunchDotnet(ProcessTask task)
{
while (task.Tasks.TryDequeue(out var file))
{
await _repo.GenerateDotnet(task.GenerationType, file);
if (task.PublishType == PublishType.No) continue;
await _pubService.PublishDotnet(file, task.GenerationType, task.PublishType);
}
}
public async Task LaunchJava(ProcessTask task)
{
while (task.Tasks.TryDequeue(out var file))
{
await _repo.GenerateJava(file);
if (task.PublishType == PublishType.No) continue;
await _pubService.PublishJava(file, task.GenerationType, task.PublishType);
}
}
public async Task LaunchJavascript(ProcessTask task)
{
while (task.Tasks.TryDequeue(out var file))
{
await _repo.GenerateJavascript(file);
if (task.PublishType == PublishType.No) continue;
await _pubService.PublishJavascript(file, task.GenerationType, task.PublishType);
}
}
}