You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.1 KiB
JavaScript
108 lines
2.1 KiB
JavaScript
import * as DataEvent from '../../../src/com/events/DataEvent';
|
|
import Auth from '../../data/Auth';
|
|
import Utils from '../../data/Utils';
|
|
const express = require('express');
|
|
const router = express.Router();
|
|
const multer = require('multer');
|
|
const auth = new Auth();
|
|
const utils = new Utils();
|
|
|
|
var backup_upload = multer().array('backup_upload');
|
|
var backup_restore = multer().any();
|
|
|
|
/***
|
|
CREATE BACK UP
|
|
*/
|
|
router.post('/create', (req, res) => {
|
|
auth.authCheck(req)
|
|
.then(() => {
|
|
utils
|
|
.createBackup()
|
|
.then(() => {
|
|
res.json({
|
|
type: DataEvent.API_BACKUP_CREATE,
|
|
message: "You're backed up. Hi fives"
|
|
});
|
|
})
|
|
.catch(err => {
|
|
res.json({
|
|
type: err.type,
|
|
message: err.message
|
|
});
|
|
});
|
|
})
|
|
.catch(err => {
|
|
res.json({
|
|
type: err.type,
|
|
message: err.message
|
|
});
|
|
});
|
|
});
|
|
|
|
/***
|
|
RETRIEVE BACKUP
|
|
*/
|
|
router.get('/download', (req, res) => {
|
|
if (req.session.user) {
|
|
var filePath = 'content/backup.zip'; // Or format the path using the `id` rest param
|
|
var fileName = 'backup.zip'; // The default name the browser will use
|
|
|
|
res.download(filePath, fileName);
|
|
} else {
|
|
res.json({
|
|
type: DataEvent.REQUEST_LAME,
|
|
message: "You're not logged in, champ"
|
|
});
|
|
}
|
|
|
|
//Move to route?
|
|
});
|
|
|
|
/***
|
|
RESTORE BACKUP
|
|
*/
|
|
|
|
router.post('/restore', backup_upload, (req, res) => {
|
|
auth.authCheck(req)
|
|
.then(() => {
|
|
utils
|
|
.restoreBackup(req.files[0])
|
|
.then(() => {
|
|
res.json({
|
|
type: DataEvent.API_BACKUP_RESTORE,
|
|
message: 'Settings, files and pages restored. Nice work.'
|
|
});
|
|
})
|
|
.catch(err => {
|
|
res.json({
|
|
type: err.type,
|
|
message: 'Backup not restored. Uh oh.'
|
|
});
|
|
});
|
|
})
|
|
.catch(err => {
|
|
res.json({
|
|
type: err.type,
|
|
message: err.message
|
|
});
|
|
});
|
|
});
|
|
|
|
router.post('/init-restore', backup_restore, (req, res) => {
|
|
utils
|
|
.verifyBackup(req.files[0], req.body)
|
|
.then(response => {
|
|
res.json({
|
|
type: response.type,
|
|
message: response.message
|
|
});
|
|
})
|
|
.catch(err => {
|
|
res.json({
|
|
type: err.type,
|
|
message: err.message
|
|
});
|
|
});
|
|
});
|
|
module.exports = router;
|