Files
fiscalos/src/FiscalOS.API/Institutions/GetAvailable/Response.cs
T
Stevan Freeborn 3b7830b1bc refactor(api): introduce DTOs for institutional account discovery
- Replace raw Plaid entity response with a dedicated Response wrapper
- Map Plaid accounts to AccountDto to decouple API from external SDK
models
- Update integration tests to assert against the new response structure
- Add JsonConstructors to DTO records for reliable deserialization
2026-02-14 06:46:05 -06:00

39 lines
759 B
C#

namespace FiscalOS.API.Institutions.GetAvailable;
internal sealed record Response
{
public IEnumerable<AccountDto> Accounts { get; init; } = [];
[JsonConstructor]
private Response()
{
}
public static Response From(IEnumerable<AccountDto> accounts)
{
return new Response
{
Accounts = accounts
};
}
}
internal sealed record AccountDto
{
public string ProviderId { get; init; } = string.Empty;
public string ProviderName { get; init; } = string.Empty;
[JsonConstructor]
private AccountDto()
{
}
public static AccountDto FromPlaidAccount(Going.Plaid.Entity.Account plaidAccount)
{
return new AccountDto
{
ProviderId = plaidAccount.AccountId,
ProviderName = plaidAccount.Name
};
}
}