Award Founding Member on verified email in check-verification endpoint
cgen-bab14ff37f4745e6bc0752e504052be4
This commit is contained in:
parent
a29e359b40
commit
58392aa19b
1 changed files with 27 additions and 0 deletions
|
|
@ -143,6 +143,33 @@ export function createServer() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const verified = Boolean(user?.email_confirmed_at || user?.confirmed_at);
|
const verified = Boolean(user?.email_confirmed_at || user?.confirmed_at);
|
||||||
|
|
||||||
|
if (verified) {
|
||||||
|
try {
|
||||||
|
// Look up the Founding Member achievement
|
||||||
|
const { data: ach, error: aErr } = await adminSupabase
|
||||||
|
.from("achievements")
|
||||||
|
.select("id")
|
||||||
|
.eq("name", "Founding Member")
|
||||||
|
.maybeSingle();
|
||||||
|
|
||||||
|
if (!aErr && ach?.id) {
|
||||||
|
// Award it if not already awarded
|
||||||
|
const { error: uaErr } = await adminSupabase
|
||||||
|
.from("user_achievements")
|
||||||
|
.upsert(
|
||||||
|
{ user_id: user.id, achievement_id: ach.id },
|
||||||
|
{ onConflict: "user_id,achievement_id" as any },
|
||||||
|
);
|
||||||
|
if (uaErr) {
|
||||||
|
console.warn("Failed to award Founding Member:", uaErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (awardErr) {
|
||||||
|
console.warn("Awarding achievement on verification failed", awardErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return res.json({ verified, user });
|
return res.json({ verified, user });
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
console.error("[API] check verification exception", e);
|
console.error("[API] check verification exception", e);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue