From 18ea884efc839944adbb2a16a3542e555c5eaf46 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 1 Oct 2025 00:58:25 +0000 Subject: [PATCH] Ensure awardAchievement updates XP using Supabase data cgen-a6c761219b6d45ff8dc12d85e62ef0f1 --- client/lib/aethex-database-adapter.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/client/lib/aethex-database-adapter.ts b/client/lib/aethex-database-adapter.ts index 35d6d920..b3e53413 100644 --- a/client/lib/aethex-database-adapter.ts +++ b/client/lib/aethex-database-adapter.ts @@ -473,6 +473,16 @@ export const aethexAchievementService = { }, async awardAchievement(userId: string, achievementId: string): Promise { + const { data: achievement, error: fetchError } = await supabase + .from("achievements") + .select("id, xp_reward") + .eq("id", achievementId) + .maybeSingle(); + + if (fetchError) { + throw fetchError; + } + const { error } = await supabase.from("user_achievements").insert({ user_id: userId, achievement_id: achievementId, @@ -481,6 +491,10 @@ export const aethexAchievementService = { if (error && error.code !== "23505") { throw error; } + + if (!error && achievement?.xp_reward) { + await this.updateUserXPAndLevel(userId, achievement.xp_reward ?? 0); + } }, async updateUserXPAndLevel(userId: string, xpGained: number | null = null): Promise {