metis-desk/modules/assets/src/api/application/support-response.builder.ts

32 lines
1.0 KiB
TypeScript

import type { SupportConnectionDTO, SupportToolDTO } from "../../common/support";
import type { SupportConnection } from "../domain/support-connection.aggregate";
import type { SupportResource } from "./support.repository";
export function buildSupportTool(tool: SupportResource): SupportToolDTO {
return {
id: tool.id.toPrimitive(),
name: tool.name,
active: tool.active,
};
}
export function buildSupport(
connection: SupportConnection,
names: ReadonlyMap<string, string>
): SupportConnectionDTO {
return {
id: connection.id.toPrimitive(),
companyId: connection.companyId.toPrimitive(),
assetId: connection.assetId.toPrimitive(),
values: connection.values.toPrimitive(),
history: connection.history.map((revision) => ({
id: revision.id.toPrimitive(),
values: revision.values.toPrimitive(),
actorId: revision.actorId.toPrimitive(),
actorName: names.get(revision.actorId.toPrimitive()) ?? revision.actorId.toPrimitive(),
recordedAt: revision.recordedAt,
})),
};
}