76 lines
2.1 KiB
TypeScript
76 lines
2.1 KiB
TypeScript
|
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);
|
||
|
}
|