48 lines
2.4 KiB
C#
48 lines
2.4 KiB
C#
using RestSharp;
|
|
using Store.Management.Api.Models;
|
|
using Store.Management.Api.Transport;
|
|
using Store.Management.Models;
|
|
|
|
namespace Store.Management.Api.Users;
|
|
|
|
|
|
public sealed class UserApi(ApiTransport transport)
|
|
{
|
|
public Task<PageResult<UserInfo>> SearchAsync(UserSearchRequest request, CancellationToken cancellationToken = default)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(request);
|
|
return transport.GetRequiredAsync<PageResult<UserInfo>>("user/GetAllUser", Method.Post, request, cancellationToken: cancellationToken);
|
|
}
|
|
|
|
public Task<UserInfo> GetAsync(string? userName = null, CancellationToken cancellationToken = default)
|
|
=> transport.GetRequiredAsync<UserInfo>("user/GetUser", Method.Post,
|
|
query: new Dictionary<string, string?> { ["userName"] = userName }, cancellationToken: cancellationToken);
|
|
|
|
public Task<UserInfo> CreateAsync(UserCreateRequest request, CancellationToken cancellationToken = default)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(request);
|
|
string route = request.GroupId is null or UserGroup.MainAccount ? "user/AddUser" : "user/AddSubUser";
|
|
return transport.GetRequiredAsync<UserInfo>(route, Method.Post, request, cancellationToken: cancellationToken);
|
|
}
|
|
|
|
public Task ChangePasswordAsync(ChangePasswordRequest request, CancellationToken cancellationToken = default)
|
|
=> transport.SendAsync<object>("user/ChangePassword", Method.Post, request, cancellationToken: cancellationToken);
|
|
|
|
public Task DeleteAsync(int id, CancellationToken cancellationToken = default)
|
|
{
|
|
ArgumentOutOfRangeException.ThrowIfNegativeOrZero(id);
|
|
return transport.SendAsync<object>("user/DelUser", Method.Post,
|
|
query: new Dictionary<string, string?> { ["id"] = id.ToString(System.Globalization.CultureInfo.InvariantCulture) },
|
|
cancellationToken: cancellationToken);
|
|
}
|
|
|
|
public Task<UserInfo> UpdateBillingAsync(UserBillingUpdateRequest request, CancellationToken cancellationToken = default)
|
|
=> transport.GetRequiredAsync<UserInfo>("user/UpdateUser", Method.Post, request, cancellationToken: cancellationToken);
|
|
|
|
public Task<UserInfo> UpdateAsync(UserUpdateRequest request, CancellationToken cancellationToken = default)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(request);
|
|
return transport.GetRequiredAsync<UserInfo>("user/UpdateUser", Method.Post, request, cancellationToken: cancellationToken);
|
|
}
|
|
}
|