Added skorubauserservice tests
This commit is contained in:
@@ -6,14 +6,14 @@ namespace PostFundManagement.Infrastructure.Security;
|
||||
|
||||
public class SkorubaUserService(IHttpClientFactory httpClientFactory) : ISkorubaUserService
|
||||
{
|
||||
public async Task<Result<string>> CreateUserAsync(CreateUserRequest request, Guid userId, CancellationToken cancellationToken = default) =>
|
||||
public async Task<Result<string>> CreateUserAsync(CreateUserRequest request, CancellationToken cancellationToken = default) =>
|
||||
await Result.Try((Func<Task<Result<string>>>)(async () =>
|
||||
{
|
||||
var httpClient = httpClientFactory.CreateClient(SkorubaHttpClient);
|
||||
var response = await httpClient.PostAsJsonAsync("api/users", request, cancellationToken);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
return Result.Fail(CreateError.Create("Failed to create user."));
|
||||
return Result.Fail(CreateError.Create(response.ReasonPhrase!));
|
||||
|
||||
var created = await response.Content.ReadFromJsonAsync<UserResponse>(cancellationToken: cancellationToken);
|
||||
|
||||
@@ -72,9 +72,9 @@ public class SkorubaUserService(IHttpClientFactory httpClientFactory) : ISkoruba
|
||||
await Result.Try((Func<Task<Result>>)(async () =>
|
||||
{
|
||||
var httpClient = httpClientFactory.CreateClient(SkorubaHttpClient);
|
||||
var payload = new { UserId = userId, ClaimType = claimType, ClaimValue = claimValue };
|
||||
var payload = new { userId = userId, claimType = claimType, claimValue = claimValue };
|
||||
|
||||
var response = await httpClient.PostAsJsonAsync($"api/users/{userId}/claims", payload, cancellationToken);
|
||||
var response = await httpClient.PostAsJsonAsync($"api/users/claims", payload, cancellationToken);
|
||||
|
||||
return Result.OkIf(response.IsSuccessStatusCode, CreateError.Create("Failed to add user claim."));
|
||||
}));
|
||||
@@ -83,9 +83,12 @@ public class SkorubaUserService(IHttpClientFactory httpClientFactory) : ISkoruba
|
||||
await Result.Try((Func<Task<Result>>)(async () =>
|
||||
{
|
||||
var httpClient = httpClientFactory.CreateClient(SkorubaHttpClient);
|
||||
var response = await httpClient.DeleteAsync($"api/users/{userId}/claims/{claimId}", cancellationToken);
|
||||
var response = await httpClient.DeleteAsync($"api/users/{userId}/Claims?claimId={claimId}", cancellationToken);
|
||||
|
||||
return Result.OkIf(response.IsSuccessStatusCode, CreateError.Create("Failed to remove user claim."));
|
||||
if(response.StatusCode == System.Net.HttpStatusCode.NotFound)
|
||||
return Result.Fail(NotFoundError.Create($"Claim {claimId} for user {userId} not found."));
|
||||
|
||||
return Result.OkIf(response.IsSuccessStatusCode, ValidationError.Create("Failed to remove user claim."));
|
||||
}));
|
||||
|
||||
public async Task<Result<Claim[]>> GetUserClaimsAsync(Guid userId, int page = 1, int pageSize = 50, CancellationToken cancellationToken = default) =>
|
||||
@@ -103,7 +106,7 @@ public class SkorubaUserService(IHttpClientFactory httpClientFactory) : ISkoruba
|
||||
await Result.Try((Func<Task<Result>>)(async () =>
|
||||
{
|
||||
var httpClient = httpClientFactory.CreateClient(SkorubaHttpClient);
|
||||
var payload = new { UserId = userId, RoleId = roleId };
|
||||
var payload = new { userId = userId, roleId = roleId };
|
||||
|
||||
var response = await httpClient.PostAsJsonAsync($"api/users/roles", payload, cancellationToken);
|
||||
|
||||
@@ -183,4 +186,15 @@ public class SkorubaUserService(IHttpClientFactory httpClientFactory) : ISkoruba
|
||||
return Result.FailIf(result is null, NotFoundError.Create("Available roles could not be retrieved."))
|
||||
.ToResult(result?.Roles?.ToArray() ?? []);
|
||||
}));
|
||||
|
||||
public async Task<Result> RemoveUserAsync(Guid userId, CancellationToken cancellationToken = default) =>
|
||||
await Result.Try((Func<Task<Result>>)(async () =>
|
||||
{
|
||||
var httpClient = httpClientFactory.CreateClient(SkorubaHttpClient);
|
||||
var result = await httpClient.DeleteAsync($"api/users/{userId}", cancellationToken);
|
||||
|
||||
return result.StatusCode == System.Net.HttpStatusCode.NotFound
|
||||
? Result.Fail(NotFoundError.Create($"User {userId} not found."))
|
||||
: Result.OkIf(result.IsSuccessStatusCode, UpdateError.Create("Failed to remove user."));
|
||||
}));
|
||||
}
|
||||
Reference in New Issue
Block a user