ff-admin-server/src/controller/admin/club/backupController.ts

76 lines
2.1 KiB
TypeScript
Raw Normal View History

2025-02-02 16:23:44 +01:00
import { Request, Response } from "express";
import { FileSystemHelper } from "../../../helpers/fileSystemHelper";
import BackupHelper from "../../../helpers/backupHelper";
import InternalException from "../../../exceptions/internalException";
/**
* @description get generated backups
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function getGeneratedBackups(req: Request, res: Response): Promise<any> {
let filesInFolder = FileSystemHelper.getFilesInDirectory(`backup`);
res.json(filesInFolder);
}
/**
* @description download backup file
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function downloadBackupFile(req: Request, res: Response): Promise<any> {
let filename = req.params.filename;
let filepath = FileSystemHelper.formatPath("backup", filename);
res.sendFile(filepath, {
headers: {
"Content-Type": "application/json",
},
});
}
/**
* @description create backup manually
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function createManualBackup(req: Request, res: Response): Promise<any> {
await BackupHelper.createBackup({});
res.sendStatus(204);
}
/**
* @description restore backup by selected
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function restoreBackupByLocalFile(req: Request, res: Response): Promise<any> {
let filename = req.body.filename;
let partial = req.body.partial;
let include = req.body.includes;
await BackupHelper.loadBackup({ filename, include, partial });
res.sendStatus(204);
}
/**
* @description upload backup
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function uploadBackupFile(req: Request, res: Response): Promise<any> {
if (!req.file) {
throw new InternalException("File upload failed");
}
res.sendStatus(204);
}