Refactor project files for improved readability and structure
- Cleaned up whitespace in Directory.Build.props and Directory.Packages.props for consistency. - Reformatted project file references in PnvPanel.Api.csproj for better clarity. - Enhanced code readability in various endpoint files by adjusting line breaks and indentation. - Standardized method signatures and improved formatting in ResultExtensions and multiple endpoint classes for better maintainability.
This commit is contained in:
@@ -13,12 +13,21 @@ namespace PnvPanel.Application.Telegram;
|
||||
/// Осознанное отступление от чистого CQRS ради простого поллинга без отдельного claim-эндпоинта.
|
||||
/// </summary>
|
||||
public sealed class GetLoginRequestStatusQueryHandler(
|
||||
IAppDbContext dbContext, IIdentityService identityService, IJwtTokenService jwtTokenService, IRefreshTokenService refreshTokenService)
|
||||
: IQueryHandler<GetLoginRequestStatusQuery, Result<LoginRequestStatusDto>>
|
||||
IAppDbContext dbContext,
|
||||
IIdentityService identityService,
|
||||
IJwtTokenService jwtTokenService,
|
||||
IRefreshTokenService refreshTokenService
|
||||
) : IQueryHandler<GetLoginRequestStatusQuery, Result<LoginRequestStatusDto>>
|
||||
{
|
||||
public async Task<Result<LoginRequestStatusDto>> Handle(GetLoginRequestStatusQuery query, CancellationToken cancellationToken)
|
||||
public async Task<Result<LoginRequestStatusDto>> Handle(
|
||||
GetLoginRequestStatusQuery query,
|
||||
CancellationToken cancellationToken
|
||||
)
|
||||
{
|
||||
var request = await dbContext.TelegramLoginRequests.FirstOrDefaultAsync(r => r.Id == query.RequestId, cancellationToken);
|
||||
var request = await dbContext.TelegramLoginRequests.FirstOrDefaultAsync(
|
||||
r => r.Id == query.RequestId,
|
||||
cancellationToken
|
||||
);
|
||||
if (request is null)
|
||||
return Result.Failure<LoginRequestStatusDto>(TelegramErrors.LoginRequestNotFound);
|
||||
|
||||
@@ -28,7 +37,10 @@ public sealed class GetLoginRequestStatusQueryHandler(
|
||||
if (request.Status != TelegramLoginStatus.Approved)
|
||||
return Result.Success(new LoginRequestStatusDto(request.Status, null));
|
||||
|
||||
var profile = await identityService.GetProfileAsync(request.UserId!.Value, cancellationToken);
|
||||
var profile = await identityService.GetProfileAsync(
|
||||
request.UserId!.Value,
|
||||
cancellationToken
|
||||
);
|
||||
if (profile is null)
|
||||
return Result.Failure<LoginRequestStatusDto>(AuthErrors.Unauthorized);
|
||||
|
||||
@@ -40,8 +52,20 @@ public sealed class GetLoginRequestStatusQueryHandler(
|
||||
var refreshToken = await refreshTokenService.IssueAsync(profile.Id, cancellationToken);
|
||||
|
||||
// Пользователь только что подтвердил вход через бота — Telegram точно привязан.
|
||||
var dto = new CurrentUserDto(profile.Id, profile.UserName, profile.Role, profile.IsActivated, TelegramLinked: true);
|
||||
var auth = new AuthResult(accessToken, accessExpiresAt, refreshToken.RawToken, refreshToken.ExpiresAt, dto);
|
||||
var dto = new CurrentUserDto(
|
||||
profile.Id,
|
||||
profile.UserName,
|
||||
profile.Role,
|
||||
profile.IsActivated,
|
||||
TelegramLinked: true
|
||||
);
|
||||
var auth = new AuthResult(
|
||||
accessToken,
|
||||
accessExpiresAt,
|
||||
refreshToken.RawToken,
|
||||
refreshToken.ExpiresAt,
|
||||
dto
|
||||
);
|
||||
|
||||
return Result.Success(new LoginRequestStatusDto(TelegramLoginStatus.Approved, auth));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user