feat(api): support passing and persistenting currency code for balances

This commit is contained in:
Stevan Freeborn
2026-02-14 06:46:05 -06:00
parent 701b89d704
commit 9c0f642f90
4 changed files with 21 additions and 6 deletions
+1 -4
View File
@@ -42,12 +42,9 @@ internal static class Endpoint
return Results.Conflict();
}
// TODO: We need to get the initial balance
// of the account
var accountMetadata = PlaidAccountMetadata.From(request.PlaidAccountId, request.PlaidAccountName);
var account = Account.From(user.Institutions.First().Id, request.PlaidAccountName, accountMetadata);
var balance = Balance.From(request.AccountCurrentBalance, request.AccountAvailableBalance);
var balance = Balance.From(request.AccountCurrentBalance, request.AccountAvailableBalance, request.AccountCurrencyCode);
account.AddBalance(balance);
user.AddAccount(account);
+7
View File
@@ -7,6 +7,7 @@ public record Request : IValidatableObject
public string PlaidAccountName { get; init; } = string.Empty;
public decimal AccountCurrentBalance { get; init; }
public decimal AccountAvailableBalance { get; init; }
public string AccountCurrencyCode { get; init; } = string.Empty;
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
@@ -27,5 +28,11 @@ public record Request : IValidatableObject
var fieldName = nameof(PlaidAccountName);
yield return new($"The {fieldName} field is required.", [fieldName]);
}
if (string.IsNullOrWhiteSpace(AccountCurrencyCode))
{
var fieldName = nameof(AccountCurrencyCode);
yield return new($"The {fieldName} field is required.", [fieldName]);
}
}
}