Refactor client update handling to support nullable parameters for name and expiration
- Updated the `UpdateClientAsync` method in `IXuiPanelGateway` to accept nullable parameters for `name` and `expiresAt`, allowing for more flexible client management without unintended modifications. - Adjusted the `BlockUserCommandHandler`, `UnblockUserCommandHandler`, and other related command handlers to utilize the new nullable parameters, ensuring that client names remain unchanged during block/unblock operations and that expiration dates are managed correctly. - Enhanced the billing and configuration handling to reflect the new logic for managing client states based on expiration rather than enabling/disabling, improving reliability in client status management. - Updated tests to cover the new behavior and ensure proper functionality across the application.
This commit is contained in:
@@ -38,6 +38,7 @@ public sealed class FakeXuiPanelGateway : IXuiPanelGateway
|
||||
string clientEmail,
|
||||
string clientName,
|
||||
int limitIp,
|
||||
DateTimeOffset? expiresAt,
|
||||
CancellationToken cancellationToken
|
||||
) => Task.FromResult(Result.Success(Guid.NewGuid().ToString()));
|
||||
|
||||
@@ -54,8 +55,9 @@ public sealed class FakeXuiPanelGateway : IXuiPanelGateway
|
||||
string inboundRemoteId,
|
||||
string clientExternalId,
|
||||
VpnProtocol protocol,
|
||||
string name,
|
||||
bool enable,
|
||||
string? name,
|
||||
bool? enable,
|
||||
DateTimeOffset? expiresAt,
|
||||
CancellationToken cancellationToken
|
||||
) => Task.FromResult(Result.Success());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user