Skip to content

Commit d5afab9

Browse files
feature(#22): this commit introduces validation to ensure that the realm exists before fetching secrets.
1 parent 5c78940 commit d5afab9

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

Applications/Backend/Source/HttpsRichardy.Federation.Application/Handlers/Secret/FetchRealmSecretsHandler.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
namespace HttpsRichardy.Federation.Application.Handlers.Secret;
22

3-
public sealed class FetchRealmSecretsHandler(ISecretCollection collection) :
3+
public sealed class FetchRealmSecretsHandler(ISecretCollection collection, IRealmCollection realmCollection) :
44
IDispatchHandler<FetchRealmSecretsParameters, Result<IReadOnlyCollection<SecretScheme>>>
55
{
66
public async Task<Result<IReadOnlyCollection<SecretScheme>>> HandleAsync(
77
FetchRealmSecretsParameters parameters, CancellationToken cancellation = default)
88
{
9+
var realmFilters = RealmFilters.WithSpecifications()
10+
.WithIdentifier(parameters.RealmId)
11+
.Build();
12+
13+
var realms = await realmCollection.GetRealmsAsync(realmFilters, cancellation);
14+
var realm = realms.FirstOrDefault();
15+
16+
if (realm is null)
17+
{
18+
return Result<IReadOnlyCollection<SecretScheme>>.Failure(RealmErrors.RealmDoesNotExist);
19+
}
20+
921
var filters = SecretFilters.WithSpecifications()
1022
.WithRealm(parameters.RealmId)
1123
.Build();

0 commit comments

Comments
 (0)