From c322b37910d4f049640afb41e91dfd36a13d5a68 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sun, 28 Sep 2025 04:46:49 +0000 Subject: [PATCH] route onboarding achievement award via server API cgen-14c7ba865740498c83ef39749a97f40b --- client/lib/aethex-database-adapter.ts | 37 ++++++++++++++++----------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/client/lib/aethex-database-adapter.ts b/client/lib/aethex-database-adapter.ts index 36f47d98..abab9fe6 100644 --- a/client/lib/aethex-database-adapter.ts +++ b/client/lib/aethex-database-adapter.ts @@ -489,21 +489,28 @@ export const aethexAchievementService = { }, async checkAndAwardOnboardingAchievement(userId: string): Promise { - // Support either seeded name or legacy name - const { data: achList, error } = await supabase - .from("achievements") - .select("id, name") - .in("name", ["Welcome to AeThex", "AeThex Explorer"]) - .limit(1); - - if (error) { - console.warn("Onboarding achievement lookup failed:", error); - return; - } - - const achievement = Array.isArray(achList) ? achList[0] : null; - if (achievement) { - await this.awardAchievement(userId, (achievement as any).id); + try { + const resp = await fetch(`/api/achievements/award`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + user_id: userId, + achievement_names: ["Welcome to AeThex", "AeThex Explorer"], + }), + }); + if (!resp.ok) { + const text = await resp.text().catch(() => ""); + console.warn("Award onboarding achievement failed:", text); + return; + } + // Show celebratory toast + aethexToast.aethex({ + title: "Achievement Unlocked! 🎉", + description: "Welcome to AeThex - Profile setup complete", + duration: 8000, + }); + } catch (e) { + console.warn("Award onboarding achievement exception:", e); } },