Seed core achievements for target user

cgen-7f0f1ffc78a545f9a60c8e000675ded8
This commit is contained in:
Builder.io 2025-10-05 00:08:33 +00:00
parent b756171b8f
commit d9d9e97025

View file

@ -140,7 +140,9 @@ export default async function handler(
} }
} }
const awardedAchievementIds: string[] = [];
let godModeAwarded = false; let godModeAwarded = false;
if (targetUserId) { if (targetUserId) {
const progressStats = { const progressStats = {
level: 100, level: 100,
@ -159,35 +161,54 @@ export default async function handler(
}) })
.eq("id", targetUserId); .eq("id", targetUserId);
const { data: existingGodMode } = await admin const { data: existingRows, error: existingError } = await admin
.from("user_achievements") .from("user_achievements")
.select("id") .select("achievement_id")
.eq("user_id", targetUserId) .eq("user_id", targetUserId);
.eq("achievement_id", "god-mode")
.maybeSingle(); if (existingError) {
throw existingError;
}
const existingIds = new Set((existingRows ?? []).map((row: any) => row.achievement_id));
for (const achievement of CORE_ACHIEVEMENTS) {
if (existingIds.has(achievement.id)) {
if (achievement.id === "god-mode") {
godModeAwarded = true;
}
continue;
}
if (!existingGodMode) {
const { error: insertError } = await admin const { error: insertError } = await admin
.from("user_achievements") .from("user_achievements")
.insert({ .insert({
id: randomUUID(), id: randomUUID(),
user_id: targetUserId, user_id: targetUserId,
achievement_id: "god-mode", achievement_id: achievement.id,
earned_at: nowIso, earned_at: nowIso,
}); });
if (insertError) { if (insertError && insertError.code !== "23505") {
throw insertError; throw insertError;
} }
awardedAchievementIds.push(achievement.id);
if (achievement.id === "god-mode") {
godModeAwarded = true;
}
} }
godModeAwarded = true; if (!godModeAwarded && existingIds.has("god-mode")) {
godModeAwarded = true;
}
} }
return res.json({ return res.json({
ok: true, ok: true,
achievementsSeeded: achievementResults.length, achievementsSeeded: achievementResults.length,
godModeAwarded, godModeAwarded,
awardedAchievementIds,
targetUserId, targetUserId,
}); });
} catch (error: any) { } catch (error: any) {