backup serving, storing and restoring
This commit is contained in:
parent
fc01263c4e
commit
6330ebd01d
8 changed files with 261 additions and 3 deletions
75
src/controller/admin/club/backupController.ts
Normal file
75
src/controller/admin/club/backupController.ts
Normal file
|
@ -0,0 +1,75 @@
|
|||
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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue