feat: dont set game as removed when deleting instalation folder

This commit is contained in:
Zamitto 2024-06-04 17:33:21 -03:00
parent d6e57c20c7
commit 7ac7d92a28
5 changed files with 60 additions and 49 deletions

View file

@ -1,8 +1,6 @@
import path from "node:path";
import fs from "node:fs";
import { In } from "typeorm";
import { gameRepository } from "@main/repository";
import { getDownloadsPath } from "../helpers/get-downloads-path";
@ -16,7 +14,6 @@ const deleteGameFolder = async (
const game = await gameRepository.findOne({
where: {
id: gameId,
status: In(["removed", "complete"]),
isDeleted: false,
},
});
@ -29,22 +26,34 @@ const deleteGameFolder = async (
game.folderName
);
if (fs.existsSync(folderPath)) {
return new Promise((resolve, reject) => {
fs.rm(
folderPath,
{ recursive: true, force: true, maxRetries: 5, retryDelay: 200 },
(error) => {
if (error) {
logger.error(error);
reject();
}
resolve();
}
);
});
if (!fs.existsSync(folderPath)) {
await gameRepository.update(
{ id: gameId },
{ downloadPath: null, folderName: null }
);
}
console.log("folder exists");
return new Promise<void>((resolve, reject) => {
fs.rm(
folderPath,
{ recursive: true, force: true, maxRetries: 5, retryDelay: 200 },
(error) => {
if (error) {
logger.error(error);
reject();
}
resolve();
}
);
}).then(async () => {
console.log("resolved");
await gameRepository.update(
{ id: gameId },
{ downloadPath: null, folderName: null }
);
});
}
};