From 988e219bb16424e1e29c3e0daca459dfe78e5d81 Mon Sep 17 00:00:00 2001 From: Lychee <2006tka@gmail.com> Date: Sun, 21 Dec 2025 14:38:44 +0500 Subject: [PATCH 1/2] =?UTF-8?q?moderation=20host=20=D0=B1=D1=83=D0=B1?= =?UTF-8?q?=D1=83=D0=B1=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/ServiceCollectionExtensions.cs | 18 ++++++++++++++++++ .../Tasks/SubmitTask/SubmitTaskHandler.cs | 7 ++++++- Api/Program.cs | 3 ++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Api/Application/Common/ServiceCollectionExtensions.cs b/Api/Application/Common/ServiceCollectionExtensions.cs index 59192d2..5965067 100644 --- a/Api/Application/Common/ServiceCollectionExtensions.cs +++ b/Api/Application/Common/ServiceCollectionExtensions.cs @@ -1,5 +1,6 @@ using System.Reflection; using Amazon.S3; +using Api.Application.Features.Tasks.SubmitTask; using Client.Models.Models.Configs; using Infrastructure.Api; using Infrastructure.DataAccess; @@ -15,6 +16,23 @@ namespace Api.Application.Common; public static class ServiceCollectionExtensions { + public static WebApplicationBuilder AddHttpServices(this WebApplicationBuilder builder) + { + builder.Services.AddHttpClient(); + + var moderationHost = builder.Configuration["MODERATION_HOST"]; + if (string.IsNullOrEmpty(moderationHost)) + throw new InvalidOperationException("MODERATION_HOST не настроен в .env"); + + builder.Services.AddHttpClient(client => + { + client.BaseAddress = new Uri(moderationHost); + client.Timeout = TimeSpan.FromSeconds(30); + }); + + return builder; + } + public static WebApplicationBuilder AddApplicationServices(this WebApplicationBuilder builder) { builder.Services.AddMediatR(cfg => diff --git a/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs b/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs index d98d888..89589a4 100644 --- a/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs +++ b/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs @@ -5,7 +5,7 @@ namespace Api.Application.Features.Tasks.SubmitTask; -public class SubmitTaskHandler(IUsersTasksTable tasks, IMetricsTable metrics, IMediator mediator) +public class SubmitTaskHandler(IUsersTasksTable tasks, IMetricsTable metrics, IMediator mediator, HttpClient httpClient) : IRequestHandler> { public async Task> Handle(SubmitTaskQuery request, CancellationToken cancellationToken) @@ -25,6 +25,11 @@ public async Task> Handle(SubmitTaskQuery request, CancellationToke await tasks.ChangeModerationStatus(taskId, ModerationStatus.Waiting); await metrics.AddRecord(username, MetricType.Submit); + + var payload = new { moderator_ids = new[] { 1181814783,1338914722,875877003, 946887384} }; + var response = await httpClient.PostAsJsonAsync("/api/moderation/notify", payload, cancellationToken); + response.EnsureSuccessStatusCode(); + return uploadedNames; } } \ No newline at end of file diff --git a/Api/Program.cs b/Api/Program.cs index 8de1b92..48edeb5 100644 --- a/Api/Program.cs +++ b/Api/Program.cs @@ -13,7 +13,8 @@ .AddInfrastructureServices(builder.Configuration) .AddWeatherServices() .AddSwaggerWithAuth() - .ConfigureWithCertificate(); + .ConfigureWithCertificate() + .AddHttpServices(); builder.Services.AddControllers(); From 4f4fbf28a61c86e489844a17937ddcfb6b2147b4 Mon Sep 17 00:00:00 2001 From: Lychee <2006tka@gmail.com> Date: Sun, 21 Dec 2025 14:44:18 +0500 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Features/Tasks/SubmitTask/SubmitTaskHandler.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs b/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs index 89589a4..9f53564 100644 --- a/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs +++ b/Api/Application/Features/Tasks/SubmitTask/SubmitTaskHandler.cs @@ -5,7 +5,7 @@ namespace Api.Application.Features.Tasks.SubmitTask; -public class SubmitTaskHandler(IUsersTasksTable tasks, IMetricsTable metrics, IMediator mediator, HttpClient httpClient) +public class SubmitTaskHandler(IUsersTasksTable tasks, IMetricsTable metrics, IMediator mediator, HttpClient httpClient, ILogger logger) : IRequestHandler> { public async Task> Handle(SubmitTaskQuery request, CancellationToken cancellationToken) @@ -28,6 +28,8 @@ public async Task> Handle(SubmitTaskQuery request, CancellationToke var payload = new { moderator_ids = new[] { 1181814783,1338914722,875877003, 946887384} }; var response = await httpClient.PostAsJsonAsync("/api/moderation/notify", payload, cancellationToken); + logger.LogInformation("SubmitTaskHandler.Handle() response: {response}", response); + response.EnsureSuccessStatusCode(); return uploadedNames;