diff --git a/src/main/services/achievements/achievement-watcher-manager.ts b/src/main/services/achievements/achievement-watcher-manager.ts index 42509276..5f915c52 100644 --- a/src/main/services/achievements/achievement-watcher-manager.ts +++ b/src/main/services/achievements/achievement-watcher-manager.ts @@ -135,12 +135,7 @@ const processAchievementFileDiff = async ( const unlockedAchievements = parseAchievementFile(file.filePath, file.type); if (unlockedAchievements.length) { - return mergeAchievements( - game.objectID, - game.shop, - unlockedAchievements, - true - ); + return mergeAchievements(game, unlockedAchievements, true); } }; @@ -187,12 +182,7 @@ export class AchievementWatcherManager { } } - return mergeAchievements( - game.objectID, - "steam", - unlockedAchievements, - false - ); + return mergeAchievements(game, unlockedAchievements, false); }; private static preSearchAchievementsWindows = async () => { diff --git a/src/main/services/achievements/merge-achievements.ts b/src/main/services/achievements/merge-achievements.ts index 3a330d8f..b7aabf9c 100644 --- a/src/main/services/achievements/merge-achievements.ts +++ b/src/main/services/achievements/merge-achievements.ts @@ -1,12 +1,12 @@ import { gameAchievementRepository, - gameRepository, userPreferencesRepository, } from "@main/repository"; import type { AchievementData, GameShop, UnlockedAchievement } from "@types"; import { WindowManager } from "../window-manager"; import { HydraApi } from "../hydra-api"; import { getUnlockedAchievements } from "@main/events/user/get-unlocked-achievements"; +import { Game } from "@main/entity"; const saveAchievementsOnLocal = async ( objectId: string, @@ -38,22 +38,15 @@ const saveAchievementsOnLocal = async ( }; export const mergeAchievements = async ( - objectId: string, - shop: GameShop, + game: Game, achievements: UnlockedAchievement[], publishNotification: boolean ) => { - const game = await gameRepository.findOne({ - where: { objectID: objectId, shop: shop }, - }); - - if (!game) return; - const [localGameAchievement, userPreferences] = await Promise.all([ gameAchievementRepository.findOne({ where: { - objectId, - shop, + objectId: game.objectID, + shop: game.shop, }, }), userPreferencesRepository.findOne({ where: { id: 1 } }), @@ -115,8 +108,8 @@ export const mergeAchievements = async ( WindowManager.notificationWindow?.webContents.send( "on-achievement-unlocked", - objectId, - shop, + game.objectID, + game.shop, achievementsInfo ); } @@ -142,8 +135,8 @@ export const mergeAchievements = async ( }) .catch(() => { return saveAchievementsOnLocal( - objectId, - shop, + game.objectID, + game.shop, mergedLocalAchievements, publishNotification ); @@ -151,8 +144,8 @@ export const mergeAchievements = async ( } return saveAchievementsOnLocal( - objectId, - shop, + game.objectID, + game.shop, mergedLocalAchievements, publishNotification ); diff --git a/src/main/services/achievements/update-local-unlocked-achivements.ts b/src/main/services/achievements/update-local-unlocked-achivements.ts index f579382f..0393477c 100644 --- a/src/main/services/achievements/update-local-unlocked-achivements.ts +++ b/src/main/services/achievements/update-local-unlocked-achivements.ts @@ -28,5 +28,5 @@ export const updateLocalUnlockedAchivements = async (game: Game) => { } } - mergeAchievements(game.objectID, "steam", unlockedAchievements, false); + mergeAchievements(game, unlockedAchievements, false); };