24 lines
916 B
TypeScript
24 lines
916 B
TypeScript
|
|
import type { MailConfigurationDTO } from "../../common/mail-configurations";
|
||
|
|
import type { MailConfiguration } from "../domain/mail-configuration.aggregate";
|
||
|
|
|
||
|
|
import type { MailContext } from "./mail-configuration.repository";
|
||
|
|
import { mailAuthorized } from "./mail-configuration-policy";
|
||
|
|
export function buildMailResponse(
|
||
|
|
item: MailConfiguration,
|
||
|
|
context: MailContext
|
||
|
|
): MailConfigurationDTO {
|
||
|
|
return {
|
||
|
|
id: item.id.toPrimitive(),
|
||
|
|
companyId: item.companyId.toPrimitive(),
|
||
|
|
values: item.values.toPrimitive(),
|
||
|
|
needsReview: !(item.values.closed || mailAuthorized(item.values, context)),
|
||
|
|
history: item.history.map((revision) => ({
|
||
|
|
id: revision.id.toPrimitive(),
|
||
|
|
values: revision.values.toPrimitive(),
|
||
|
|
actorId: revision.actorId.toPrimitive(),
|
||
|
|
actorName: context.actors.get(revision.actorId.toPrimitive()) ?? "—",
|
||
|
|
recordedAt: revision.recordedAt,
|
||
|
|
})),
|
||
|
|
};
|
||
|
|
}
|