using DeepL; using FictionArchive.Service.Shared.Services.GraphQL; using FictionArchive.Service.TranslationService.GraphQL; using FictionArchive.Service.TranslationService.Services.TranslationEngines; using FictionArchive.Service.TranslationService.Services.TranslationEngines.DeepLTranslate; namespace FictionArchive.Service.TranslationService; public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); builder.Services.AddHealthChecks(); #region GraphQL builder.Services.AddGraphQLServer() .AddQueryType() .AddMutationType() .AddType() .AddMutationConventions(applyToAllMutations: true) .AddFiltering(opt => opt.AddDefaults().BindRuntimeType()) .AddSorting() .AddProjections(); #endregion #region Translation Adapter builder.Services.AddTransient(provider => { return new DeepLClient(builder.Configuration["DeepL:ApiKey"]); }); builder.Services.AddTransient(); #endregion var app = builder.Build(); app.UseHttpsRedirection(); app.MapHealthChecks("/healthz"); app.MapGraphQL(); app.Run(); } }