From e6a330ba27f7a8476cce923a93234c85e73f3083 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Fri, 25 Sep 2026 11:00:25 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20/api/request-manage/search=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D0=BB=20400=20=D0=BD=D0=B0=20=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=BC=20=D0=BF=D0=BE=D0=BB=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B8=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ApiController] с Nullable enable считал string query обязательным параметром модели, а IHttpClient.buildUrl вырезает из URL пустые query-параметры целиком — пустое поле поиска (обычное состояние при открытии комбобокса выбора заявки) уходило вовсе без query и падало 400 ещё до контроллера. query и statuses — string?. Co-Authored-By: Claude Sonnet 5 --- .../Controllers/RequestManageController.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/Tnsu.ApprovalRoute.Api/Controllers/RequestManageController.cs b/backend/Tnsu.ApprovalRoute.Api/Controllers/RequestManageController.cs index fdb4fc6..680f348 100644 --- a/backend/Tnsu.ApprovalRoute.Api/Controllers/RequestManageController.cs +++ b/backend/Tnsu.ApprovalRoute.Api/Controllers/RequestManageController.cs @@ -23,7 +23,12 @@ public sealed class RequestManageController(RequestManageService service) : Cont [ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)] public async Task Search( [FromQuery] int requestTypeId, - [FromQuery] string query, + // string? (не string) — [ApiController] с Nullable enable иначе считает + // query обязательным параметром модели, а IHttpClient.buildUrl (см. + // httpClient.ts) вырезает из URL пустые query-параметры целиком: пустое + // поле поиска (обычное состояние при открытии комбобокса) присылало + // запрос вовсе БЕЗ query, и такой запрос падал 400 ещё до контроллера. + [FromQuery] string? query, [FromQuery] int page, [FromQuery] int? pageSize, CancellationToken ct) => @@ -45,7 +50,7 @@ public sealed class RequestManageController(RequestManageService service) : Cont [HttpGet("by-approver")] [ProducesResponseType(typeof(ApiResponse>), StatusCodes.Status200OK)] public async Task ByApprover( - [FromQuery] string approverEmail, [FromQuery] string statuses, CancellationToken ct) + [FromQuery] string approverEmail, [FromQuery] string? statuses, CancellationToken ct) { var activeStatuses = (statuses ?? string.Empty) .Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)