add email consent and update audience

This commit is contained in:
miloschwartz
2025-11-17 20:37:24 -05:00
parent 80a68507cd
commit 02fbc279b5
7 changed files with 104 additions and 60 deletions

View File

@@ -27,7 +27,12 @@ export const queryAccessAuditLogsQuery = z.object({
})
.transform((val) => Math.floor(new Date(val).getTime() / 1000))
.optional()
.prefault(new Date().toISOString()),
.prefault(new Date().toISOString())
.openapi({
type: "string",
format: "date-time",
description: "End time as ISO date string (defaults to current time)"
}),
action: z
.union([z.boolean(), z.string()])
.transform((val) => (typeof val === "string" ? val === "true" : val))

View File

@@ -30,7 +30,8 @@ export const signupBodySchema = z.object({
password: passwordSchema,
inviteToken: z.string().optional(),
inviteId: z.string().optional(),
termsAcceptedTimestamp: z.string().nullable().optional()
termsAcceptedTimestamp: z.string().nullable().optional(),
marketingEmailConsent: z.boolean().optional()
});
export type SignUpBody = z.infer<typeof signupBodySchema>;
@@ -55,7 +56,7 @@ export async function signup(
);
}
const { email, password, inviteToken, inviteId, termsAcceptedTimestamp } =
const { email, password, inviteToken, inviteId, termsAcceptedTimestamp, marketingEmailConsent } =
parsedBody.data;
const passwordHash = await hashPassword(password);
@@ -220,8 +221,8 @@ export async function signup(
new Date(sess.expiresAt)
);
res.appendHeader("Set-Cookie", cookie);
if (build == "saas") {
if (build == "saas" && marketingEmailConsent) {
logger.debug(`User ${email} opted in to marketing emails during signup.`);
moveEmailToAudience(email, AudienceIds.SignUps);
}