This commit was merged in pull request #154.
This commit is contained in:
@@ -200,3 +200,16 @@ export class PortfolioRepository {
|
||||
export function portfolioWorkKey(accountId: string): string {
|
||||
return `portfolio:${JSON.stringify(accountId)}`;
|
||||
}
|
||||
|
||||
// Json payload is written only by publish(); a shape check turns corruption into an explicit 500.
|
||||
export function portfolioSnapshot(value: Prisma.JsonValue): PortfolioDto {
|
||||
const snapshot = value as null | Partial<PortfolioDto>;
|
||||
if (
|
||||
!Array.isArray(snapshot?.positions) ||
|
||||
!Array.isArray(snapshot.totalsByCurrency) ||
|
||||
!Array.isArray(snapshot.cashBalances)
|
||||
) {
|
||||
throw new Error('Corrupted portfolio snapshot payload');
|
||||
}
|
||||
return snapshot as PortfolioDto;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user