- Added migration scripts for mail configurations and revisions. - Created persistence mapper for mail configurations and revisions. - Developed Sequelize repository for mail configuration management. - Introduced common schemas and types for mail configurations. - Implemented API for fetching and saving mail configurations. - Built React components for mail configuration forms and pages. - Added internationalization support for mail-related texts in English and Spanish. - Implemented feedback mechanism for API errors in mail components. - Created tests for mail configuration components and functionality.
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,
|
|
})),
|
|
};
|
|
}
|