37 lines
897 B
JavaScript
37 lines
897 B
JavaScript
|
const { performDump } = require("../../utilities/templates")
|
||
|
const path = require("path")
|
||
|
const os = require("os")
|
||
|
const fs = require("fs-extra")
|
||
|
|
||
|
exports.exportAppDump = async function(ctx) {
|
||
|
const { appId } = ctx.request.body
|
||
|
|
||
|
const backupsDir = path.join(os.homedir(), ".budibase", "backups")
|
||
|
fs.ensureDirSync(backupsDir)
|
||
|
|
||
|
const backupIdentifier = `${appId} Backup: ${new Date()}.txt`
|
||
|
|
||
|
await performDump({
|
||
|
dir: backupsDir,
|
||
|
appId,
|
||
|
name: backupIdentifier,
|
||
|
})
|
||
|
|
||
|
ctx.status = 200
|
||
|
ctx.body = {
|
||
|
url: `/api/backups/download/${backupIdentifier}`,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
exports.downloadAppDump = async function(ctx) {
|
||
|
const fileName = ctx.params.fileName
|
||
|
|
||
|
const backupsDir = path.join(os.homedir(), ".budibase", "backups")
|
||
|
fs.ensureDirSync(backupsDir)
|
||
|
|
||
|
const backupFile = path.join(backupsDir, fileName)
|
||
|
|
||
|
ctx.attachment(fileName)
|
||
|
ctx.body = fs.createReadStream(backupFile)
|
||
|
}
|