Files
govoplan-campaign/webui/src/features/campaigns/utils/mailProfileReference.ts

27 lines
1.2 KiB
TypeScript

export function campaignMailProfileReferenceOnly(value: Record<string, unknown>): Record<string, unknown> {
const server = isRecord(value.server) ? value.server : {};
const profileId = textId(server.mail_profile_id);
const smtpServerId = textId(server.smtp_server_id);
const smtpCredentialId = textId(server.smtp_credential_id);
const imapServerId = textId(server.imap_server_id);
const imapCredentialId = textId(server.imap_credential_id);
const reference: Record<string, string> = {};
if (profileId) reference.mail_profile_id = profileId;
if (profileId && smtpServerId) reference.smtp_server_id = smtpServerId;
if (profileId && smtpServerId && smtpCredentialId) reference.smtp_credential_id = smtpCredentialId;
if (profileId && imapServerId) reference.imap_server_id = imapServerId;
if (profileId && imapServerId && imapCredentialId) reference.imap_credential_id = imapCredentialId;
return {
...value,
server: reference
};
}
function textId(value: unknown): string {
return typeof value === "string" ? value.trim() : "";
}
function isRecord(value: unknown): value is Record<string, unknown> {
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
}