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

@ -4,17 +4,22 @@ import multer from "multer";
import {
createManualBackup,
downloadBackupFile,
downloadUploadedBackupFile,
getGeneratedBackups,
getUploadedBackups,
restoreBackupByLocalFile,
restoreBackupByUploadedFile,
uploadBackupFile,
} from "../../../controller/admin/user/backupController";
import { FileSystemHelper } from "../../../helpers/fileSystemHelper";
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "files/backup/");
FileSystemHelper.createFolder("uploaded-backup");
cb(null, "files/uploaded-backup/");
},
filename: (req, file, cb) => {
cb(null, `${new Date().toISOString().split("T")[0]}-uploaded-${file.originalname}`);
cb(null, `${new Date().toISOString().split("T")[0]}_${file.originalname}`);
},
});
@ -31,14 +36,22 @@ const upload = multer({
var router = express.Router({ mergeParams: true });
router.get("/", async (req: Request, res: Response) => {
router.get("/generated", async (req: Request, res: Response) => {
await getGeneratedBackups(req, res);
});
router.get("/:filename", async (req: Request, res: Response) => {
router.get("/generated/:filename", async (req: Request, res: Response) => {
await downloadBackupFile(req, res);
});
router.get("/uploaded", async (req: Request, res: Response) => {
await getUploadedBackups(req, res);
});
router.get("/uploaded/:filename", async (req: Request, res: Response) => {
await downloadUploadedBackupFile(req, res);
});
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "user", "backup"),
@ -48,13 +61,21 @@ router.post(
);
router.post(
"/restore",
"/generated/restore",
PermissionHelper.passCheckMiddleware("admin", "user", "backup"),
async (req: Request, res: Response) => {
await restoreBackupByLocalFile(req, res);
}
);
router.post(
"/uploaded/restore",
PermissionHelper.passCheckMiddleware("admin", "user", "backup"),
async (req: Request, res: Response) => {
await restoreBackupByUploadedFile(req, res);
}
);
router.post(
"/upload",
PermissionHelper.passCheckMiddleware("create", "user", "backup"),