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)