diff --git a/SfeduSchedule/Program.cs b/SfeduSchedule/Program.cs index 624ce1a..e272333 100644 --- a/SfeduSchedule/Program.cs +++ b/SfeduSchedule/Program.cs @@ -30,6 +30,9 @@ var updateJwtCron = configuration["UPDATE_JWT_CRON"] ?? "0 0 4 ? * *"; if (string.IsNullOrEmpty(configuration["TZ"])) configuration["TZ"] = "Europe/Moscow"; +if (string.IsNullOrEmpty(configuration["MODEUS_URL"])) + configuration["MODEUS_URL"] = "https://sfedu.modeus.org/"; + var permitLimit = int.TryParse(configuration["PERMIT_LIMIT"], out var parsedPermitLimit) ? parsedPermitLimit : 40; var timeLimit = int.TryParse(configuration["TIME_LIMIT"], out var parsedTimeLimit) ? parsedTimeLimit : 10; @@ -61,7 +64,11 @@ if (!string.IsNullOrEmpty(tgChatId) && !string.IsNullOrEmpty(tgToken)) // Включаем MVC контроллеры var mvcBuilder = builder.Services.AddControllers(); -builder.Services.AddHttpClient(); +builder.Services.AddHttpClient("modeus", client => +{ + client.BaseAddress = new Uri(configuration["MODEUS_URL"]!); +}); +builder.Services.AddSingleton(); builder.Services.AddHttpClient("authClient"); builder.Services.AddAuthentication() diff --git a/SfeduSchedule/Services/ModeusService.cs b/SfeduSchedule/Services/ModeusService.cs index 036070b..9563a8a 100644 --- a/SfeduSchedule/Services/ModeusService.cs +++ b/SfeduSchedule/Services/ModeusService.cs @@ -16,13 +16,14 @@ public class ModeusService private readonly HttpClient _httpClient; private readonly ILogger _logger; - public ModeusService(HttpClient httpClient, ILogger logger, IConfiguration configuration) + public ModeusService(IHttpClientFactory httpClientFactory, + ILogger logger, + IConfiguration configuration) { - _httpClient = httpClient; + _httpClient = httpClientFactory.CreateClient("modeus"); _logger = logger; _configuration = configuration; - _httpClient.BaseAddress = new Uri("https://sfedu.modeus.org/"); - SetToken(_configuration["TOKEN"]); + SetToken(_configuration["TOKEN"]); // Установка предустановленного токена при инициализации, на случай если нет возможности связи с AUTH сервисом } public void SetToken(string? token)