Keep a published rule when some invitation emails already went out, and only set Reply-To when the inviter address is a mailbox.

This commit is contained in:
adilallo committed 2026-11-06 09:22:06 -07:00
1 parent 3c984e00c5
commit ab6a0c807d
7 files changed
+161 -10

No files matched your search

@@ -9,6 +9,7 @@ import { sendRuleStakeholderInviteEmail } from "../../../../../lib/server/mail";
import { apiRoute } from "../../../../../lib/server/apiRoute";
import { logRouteError } from "../../../../../lib/server/requestId";
import { stakeholderInviteVerifyUrl } from "../../../../../lib/server/ruleStakeholderInviteOps";
import { RULE_STAKEHOLDER_INVITER_FALLBACK } from "../../../../../lib/server/ruleStakeholderInviteMail";
import { STAKEHOLDER_INVITE_TTL_MS } from "../../../../../lib/server/ruleStakeholders";
import {
dbUnavailable,
@@ -102,7 +103,9 @@ export const POST = apiRoute(
const origin = getPublicOrigin(request);
const verifyUrl = stakeholderInviteVerifyUrl(origin, nextToken);
const inviterEmail =
row.invitedBy?.email ?? row.rule.user?.email ?? "CommunityRule";
row.invitedBy?.email ??
row.rule.user?.email ??
RULE_STAKEHOLDER_INVITER_FALLBACK;
try {
await sendRuleStakeholderInviteEmail({
to: row.email,
+12 -7
View File
@@ -205,9 +205,10 @@ export const POST = apiRoute(
});
const origin = getPublicOrigin(request);
try {
for (const inv of invites) {
const verifyUrl = stakeholderInviteVerifyUrl(origin, inv.token);
let sent = 0;
for (const inv of invites) {
const verifyUrl = stakeholderInviteVerifyUrl(origin, inv.token);
try {
await sendRuleStakeholderInviteEmail({
to: inv.email,
verifyUrl,
@@ -217,11 +218,15 @@ export const POST = apiRoute(
summary,
document,
});
sent += 1;
} catch (err) {
logRouteError("rules.publish", requestId, err, {
phase: "sendRuleStakeholderInviteEmail",
email: inv.email,
});
}
} catch (err) {
logRouteError("rules.publish", requestId, err, {
phase: "sendRuleStakeholderInviteEmail",
});
}
if (sent === 0) {
try {
await prisma.publishedRule.delete({ where: { id: rule.id } });
} catch (delErr) {