Ensure awardAchievement updates XP using Supabase data

cgen-a6c761219b6d45ff8dc12d85e62ef0f1
This commit is contained in:
Builder.io 2025-10-01 00:58:25 +00:00
parent f27be067c3
commit 18ea884efc

View file

@ -473,6 +473,16 @@ export const aethexAchievementService = {
},
async awardAchievement(userId: string, achievementId: string): Promise<void> {
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<void> {