split uploaded and generated backups

This commit is contained in:
Julian Krauser 2025-02-03 11:03:31 +01:00
parent 542a77fbef
commit 0d6103170a
6 changed files with 122 additions and 15 deletions

View file

@ -12,7 +12,9 @@ import InternalException from "../../../exceptions/internalException";
export async function getGeneratedBackups(req: Request, res: Response): Promise<any> {
let filesInFolder = FileSystemHelper.getFilesInDirectory(`backup`);
res.json(filesInFolder);
let sorted = filesInFolder.sort((a, b) => new Date(b.split(".")[0]).getTime() - new Date(a.split(".")[0]).getTime());
res.json(sorted);
}
/**
@ -33,6 +35,38 @@ export async function downloadBackupFile(req: Request, res: Response): Promise<a
});
}
/**
* @description get uploaded backups
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function getUploadedBackups(req: Request, res: Response): Promise<any> {
let filesInFolder = FileSystemHelper.getFilesInDirectory("uploaded-backup");
let sorted = filesInFolder.sort((a, b) => new Date(b.split("_")[0]).getTime() - new Date(a.split("_")[0]).getTime());
res.json(sorted);
}
/**
* @description download uploaded backup file
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function downloadUploadedBackupFile(req: Request, res: Response): Promise<any> {
let filename = req.params.filename;
let filepath = FileSystemHelper.formatPath("uploaded-backup", filename);
res.sendFile(filepath, {
headers: {
"Content-Type": "application/json",
},
});
}
/**
* @description create backup manually
* @param req {Request} Express req object
@ -55,8 +89,25 @@ export async function restoreBackupByLocalFile(req: Request, res: Response): Pro
let filename = req.body.filename;
let partial = req.body.partial;
let include = req.body.include;
let overwrite = req.body.overwrite;
await BackupHelper.loadBackup({ filename, include, partial });
await BackupHelper.loadBackup({ filename, include, partial, overwrite });
res.sendStatus(204);
}
/**
* @description restore uploaded backup by selected
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function restoreBackupByUploadedFile(req: Request, res: Response): Promise<any> {
let filename = req.body.filename;
let partial = req.body.partial;
let include = req.body.include;
await BackupHelper.loadBackup({ filename, path: "uploaded-backup", include, partial });
res.sendStatus(204);
}