Ensure awardAchievement updates XP using Supabase data
cgen-a6c761219b6d45ff8dc12d85e62ef0f1
This commit is contained in:
parent
f27be067c3
commit
18ea884efc
1 changed files with 14 additions and 0 deletions
|
|
@ -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> {
|
||||
|
|
|
|||
Loading…
Reference in a new issue