Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import { AmountMapper } from "../../commons/mappers/amount.mapper.js";
import { Amount } from "../../tr8-script/domain/value.js";
import { JournalEvent } from "../domain/journal-events.js";
import { JournalEventDto } from "../dtos/journal-event.dto.js";
import { AmountDto } from "../../commons/dtos/values.dto.js";
class JournalEventMapper {
static toDTO(domain: JournalEvent): JournalEventDto {
return {
...domain,
metadata: JSON.stringify(domain.metadata),
variables: Object.keys(domain.variables).reduce(
(acc, k) => {
acc[k] = AmountMapper.toDTO(domain.variables[k]!);
return acc;
},
{} as Record<string, AmountDto>,
),
journals: domain.journals.map((journal) => ({
...journal,
change: AmountMapper.toDTO(journal.change),
})),
metrics: domain.metrics.map((metric) => ({
...metric,
change: AmountMapper.toDTO(metric.change),
})),
};
}
static fromDTO(dto: JournalEventDto): JournalEvent {
return {
...dto,
metadata: JSON.parse(dto.metadata),
variables: Object.keys(dto.variables).reduce(
(acc, k) => {
acc[k] = AmountMapper.fromDTO(dto.variables[k]!);
return acc;
},
{} as Record<string, Amount>,
),
journals: dto.journals.map((journal) => ({
...journal,
change: AmountMapper.fromDTO(journal.change),
})),
metrics: dto.metrics.map((metric) => ({
...metric,
change: AmountMapper.fromDTO(metric.change),
})),
};
}
}
export { JournalEventMapper };
|