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 { 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 { 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 { 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 { 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 { if (!req.file) { throw new InternalException("File upload failed"); } res.sendStatus(204); }