Вынести условия-предикаты в extension-методы

HasUser из 13 endpoint-файлов сведён в AuthHelpers.HasUser;
15 приватных предикатов заменены extension-методами с удалением
дублирующих приватных методов: IsCommunicationFailure,
IsTransportFailure, IsPrivateEndpoint, IsConfigured, IsTrue,
IsExpired, IsFailedLogin/IsSuccessfulLogin, HasChanges, HasBudget,
HasAnyTerm, IsCurrencyLetter, IsEmojiCodePoint, ContainsFooterHint,
IsTypeLabel.
This commit is contained in:
Rustam Khalimov
2026-09-11 13:08:47 +03:00
parent 9e07568ddd
commit 413eaac48c
40 changed files with 1091 additions and 993 deletions
@@ -62,7 +62,7 @@ public static class ContainersEndpoints
// GET /api/containers?space=: список контейнеров пространства (или всех) со счётчиками.
private static async Task<IResult> ListContainersAsync(string? space, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -74,7 +74,7 @@ public static class ContainersEndpoints
// POST /api/containers: создать контейнер; ответ {id}.
private static async Task<IResult> CreateContainerAsync(ContainerCreateRequest body, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -105,7 +105,7 @@ public static class ContainersEndpoints
// PATCH /api/containers/{id}: частичное обновление; ответ {id}; 404 «Контейнер не найден».
private static async Task<IResult> PatchContainerAsync(string containerId, JsonElement body, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -165,7 +165,7 @@ public static class ContainersEndpoints
// POST /api/containers/{id}/accept: принять ИИ-предложение (suggested=false).
private static async Task<IResult> AcceptSuggestedAsync(string containerId, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -185,7 +185,7 @@ public static class ContainersEndpoints
// DELETE /api/containers/{id}: удалить контейнер; карточки → «Неразобранное» новыми.
private static async Task<IResult> DeleteContainerAsync(string containerId, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -201,7 +201,7 @@ public static class ContainersEndpoints
// POST /api/containers/reorder: порядок контейнеров пространства; ответ {ok:true}.
private static async Task<IResult> ReorderContainersAsync(OrderBody body, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -219,7 +219,7 @@ public static class ContainersEndpoints
// GET /api/containers/state: свёрнутость/ширина всех колонок (colState).
private static async Task<IResult> GetColumnsStateAsync(HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -239,7 +239,7 @@ public static class ContainersEndpoints
// PATCH /api/containers/{id}/state: merge патча в состояние колонки; ответ — состояние этой колонки.
private static async Task<IResult> PatchColumnStateAsync(string containerId, ColStateBody body, HttpContext context, CancellationToken ct)
{
if (!HasUser(context))
if (!context.HasUser())
{
return EndpointResults.Unauthorized(AuthHelpers.UnauthorizedDetail);
}
@@ -296,9 +296,4 @@ public static class ContainersEndpoints
return wire;
}
// Разрешена ли сессия запроса.
// context: Контекст запроса.
// Возвращает: True — сессия есть.
private static bool HasUser(HttpContext context) => context.GetCurrentUser() is not null;
}