Added skoruba api integration
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using PostFundManagement.Application.Abstractions;
|
||||
using PostFundManagement.Application.Abstractions.Services;
|
||||
using PostFundManagement.Domain.Abstractions;
|
||||
using static PostFundManagement.Domain.Extensions.Constants;
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using PostFundManagement.Application.Abstractions;
|
||||
using PostFundManagement.Application.Abstractions.Services;
|
||||
using PostFundManagement.Application.Abstractions.Services;
|
||||
|
||||
namespace PostFundManagement.Application.Services.Shared;
|
||||
|
||||
|
||||
@@ -12,9 +12,10 @@ public sealed class IdentityService(IDbContextFactory<ApplicationDbContext> cont
|
||||
{
|
||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||
|
||||
// TODO: Ensure TenantUser status is checked
|
||||
var userExistsAndActive = await context.Users
|
||||
.AnyAsync(u => u.Id == userId && u.Status == ActivityStatus.Active, cancellationToken);
|
||||
var userExistsAndActive = await context.TenantUsers
|
||||
.Include(i => i.User)
|
||||
.AnyAsync(u => u.UserId == userId && u.Status == ActivityStatus.Active &&
|
||||
u.User!.Status == ActivityStatus.Active, cancellationToken);
|
||||
|
||||
return Result.OkIf(userExistsAndActive, NotFoundError.Create());
|
||||
}));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using PostFundManagement.Domain.Configuration.Security;
|
||||
using PostFundManagement.Domain.Errors;
|
||||
using PostFundManagement.Domain.Security.Configuration;
|
||||
using PostFundManagement.Domain.Security.Models;
|
||||
using PostFundManagement.Domain.Security.Sdk;
|
||||
using PostFundManagement.Domain.Models.Security;
|
||||
using PostFundManagement.Infrastructure.Security;
|
||||
|
||||
namespace PostFundManagement.Application.Services.Shared;
|
||||
|
||||
@@ -9,10 +9,10 @@ public sealed class TokenService(ISecurityConnectApi connectApi, IOptions<Securi
|
||||
{
|
||||
private readonly SecurityClientSettings clientSettings = clientOptions.Value;
|
||||
|
||||
public async Task<Result<Domain.Security.Models.TokenResponse>> GenerateAsync(CancellationToken cancellationToken = default) =>
|
||||
await Result.Try((Func<Task<Result<Domain.Security.Models.TokenResponse>>>)(async () =>
|
||||
public async Task<Result<Domain.Models.Security.TokenResponse>> GenerateAsync(CancellationToken cancellationToken = default) =>
|
||||
await Result.Try((Func<Task<Result<Domain.Models.Security.TokenResponse>>>)(async () =>
|
||||
{
|
||||
using var response = await connectApi.GetToken(new Domain.Security.Models.TokenRequest
|
||||
using var response = await connectApi.GetToken(new Domain.Models.Security.TokenRequest
|
||||
{
|
||||
ClientId = clientSettings.ClientId,
|
||||
ClientSecret = clientSettings.ClientSecret,
|
||||
@@ -27,14 +27,14 @@ public sealed class TokenService(ISecurityConnectApi connectApi, IOptions<Securi
|
||||
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var tokenResponse = JsonSerializer.Deserialize<Domain.Security.Models.TokenResponse>(contentRaw);
|
||||
var tokenResponse = JsonSerializer.Deserialize<Domain.Models.Security.TokenResponse>(contentRaw);
|
||||
|
||||
return Result.FailIf(string.IsNullOrWhiteSpace(tokenResponse?.AccessToken),
|
||||
NotFoundError.Create("Authentication succeeded, but no access token was found in the response payload."))
|
||||
.ToResult(tokenResponse!);
|
||||
}
|
||||
|
||||
return await Result.Try((Func<Task<Result<Domain.Security.Models.TokenResponse>>>)(async () =>
|
||||
return await Result.Try((Func<Task<Result<Domain.Models.Security.TokenResponse>>>)(async () =>
|
||||
{
|
||||
var errorResult = JsonSerializer.Deserialize<TokenErrorResponse>(contentRaw);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user