Админка
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Knot.Contracts.Admin.Abstractions;
|
||||
using Knot.Contracts.Settings.Abstractions;
|
||||
using Knot.Modules.Admin.Application.Admin.DTOs;
|
||||
using Knot.Shared.Kernel.Services;
|
||||
using MediatR;
|
||||
|
||||
namespace Knot.Modules.Admin.Application.Admin.Queries;
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Knot.Contracts.Admin.Abstractions;
|
||||
using Knot.Contracts.Auth.Domain;
|
||||
using Knot.Contracts.Conversations.Application.Abstractions;
|
||||
using Knot.Contracts.Conversations.Abstractions;
|
||||
using Knot.Contracts.Messaging.Application.Abstractions;
|
||||
using Knot.Modules.Admin.Application.Admin.DTOs;
|
||||
using MediatR;
|
||||
@@ -18,12 +16,12 @@ internal sealed class GetUserDetailsQueryHandler : IQueryHandler<GetUserDetailsQ
|
||||
{
|
||||
private readonly IUserRepository _userRepository;
|
||||
private readonly Knot.Contracts.Messaging.Application.Abstractions.IUserStatsService _statsService;
|
||||
private readonly Knot.Contracts.Conversations.Application.Abstractions.IUserStatusService _statusService;
|
||||
private readonly IUserStatusService _statusService;
|
||||
|
||||
public GetUserDetailsQueryHandler(
|
||||
IUserRepository userRepository,
|
||||
Knot.Contracts.Messaging.Application.Abstractions.IUserStatsService statsService,
|
||||
Knot.Contracts.Conversations.Application.Abstractions.IUserStatusService statusService)
|
||||
IUserStatusService statusService)
|
||||
{
|
||||
_userRepository = userRepository;
|
||||
_statsService = statsService;
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Knot.Contracts.Admin.Abstractions;
|
||||
using Knot.Contracts.Auth.Domain;
|
||||
using Knot.Contracts.Conversations.Application.Abstractions;
|
||||
using Knot.Contracts.Conversations.Abstractions;
|
||||
using Knot.Contracts.Messaging.Application.Abstractions;
|
||||
using Knot.Modules.Admin.Application.Admin.DTOs;
|
||||
using MediatR;
|
||||
@@ -18,12 +18,12 @@ internal sealed class SearchUsersQueryHandler : IQueryHandler<SearchUsersQuery,
|
||||
{
|
||||
private readonly IUserRepository _userRepository;
|
||||
private readonly Knot.Contracts.Messaging.Application.Abstractions.IUserStatsService _statsService;
|
||||
private readonly Knot.Contracts.Conversations.Application.Abstractions.IUserStatusService _statusService;
|
||||
private readonly IUserStatusService _statusService;
|
||||
|
||||
public SearchUsersQueryHandler(
|
||||
IUserRepository userRepository,
|
||||
Knot.Contracts.Messaging.Application.Abstractions.IUserStatsService statsService,
|
||||
Knot.Contracts.Conversations.Application.Abstractions.IUserStatusService statusService)
|
||||
IUserStatusService statusService)
|
||||
{
|
||||
_userRepository = userRepository;
|
||||
_statsService = statsService;
|
||||
|
||||
@@ -67,14 +67,25 @@ public static class AdminEndpoints
|
||||
return result.IsSuccess ? Results.Ok() : Results.BadRequest(new { error = result.Error.Description });
|
||||
});
|
||||
|
||||
group.MapGet("users", async (ISender sender, [FromQuery] string query = "", CancellationToken ct = default) =>
|
||||
group.MapGet("users", async (ISender sender, [FromQuery] string? query, CancellationToken ct = default) =>
|
||||
{
|
||||
var result = await sender.Send(new SearchUsersQuery(query), ct);
|
||||
if (!result.IsSuccess)
|
||||
// При пустом или отсутствующем query возвращаем всех пользователей
|
||||
var searchQuery = string.IsNullOrWhiteSpace(query) ? "" : query;
|
||||
try
|
||||
{
|
||||
return Results.BadRequest(new { error = result.Error.Description });
|
||||
var result = await sender.Send(new SearchUsersQuery(searchQuery), ct);
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
Console.WriteLine($"[Admin] SearchUsers error: {result.Error.Code} - {result.Error.Description}");
|
||||
return Results.BadRequest(new { error = result.Error.Description });
|
||||
}
|
||||
return Results.Ok(result.Value);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[Admin] SearchUsers exception: {ex}");
|
||||
return Results.BadRequest(new { error = ex.Message });
|
||||
}
|
||||
return Results.Ok(result.Value);
|
||||
});
|
||||
|
||||
group.MapGet("users/{id:guid}", async ([FromRoute] Guid id, ISender sender, CancellationToken ct) =>
|
||||
|
||||
Reference in New Issue
Block a user