|
|
|
@ -1,5 +1,7 @@ |
|
|
|
|
/* eslint-disable import/no-extraneous-dependencies */ |
|
|
|
|
// import httpStatus from 'http-status';
|
|
|
|
|
import fs from 'fs'; |
|
|
|
|
import archiver from 'archiver'; |
|
|
|
|
import multer from 'multer'; |
|
|
|
|
import { handler as ErrorHandel } from '../../middlewares/errors'; |
|
|
|
|
// import ApiException from '../../../common/utils/APIException';
|
|
|
|
@ -102,7 +104,6 @@ exports.delete = (req, res, next) => { |
|
|
|
|
multer({ dest: `${dir}` }); |
|
|
|
|
const path = req.body.path.replace(cdnConfig.uri, storageConfig.uri); |
|
|
|
|
const newpath = req.body.path.replace(cdnConfig.uri, storageConfig.uri_backup); |
|
|
|
|
console.log(path, newpath); |
|
|
|
|
// fs.rm(path, { recursive: true }, err => {
|
|
|
|
|
// if (err) {
|
|
|
|
|
// return res.status(400).json({ code: 400, message: 'lỗi', detail: err });
|
|
|
|
@ -118,3 +119,77 @@ exports.delete = (req, res, next) => { |
|
|
|
|
return ErrorHandel(ex, req, res, next); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
exports.download = (req, res, next) => { |
|
|
|
|
try { |
|
|
|
|
const user = req.user; |
|
|
|
|
const namefile = `${user.name}-${Date.now()}.zip`; |
|
|
|
|
const dir = `${storageConfig.uri}/${user.id}/${namefile}`; |
|
|
|
|
const output = fs.createWriteStream(dir); |
|
|
|
|
const archive = archiver('zip', { |
|
|
|
|
zlib: { level: 9 } // Sets the compression level.
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
archive.pipe(output); |
|
|
|
|
if (req.body.data) { |
|
|
|
|
req.body.data.forEach((e) => { |
|
|
|
|
const path = e.path.replace(cdnConfig.uri, storageConfig.uri); |
|
|
|
|
if (e.isFolder) { |
|
|
|
|
archive.directory(path, e.name); |
|
|
|
|
} else { |
|
|
|
|
archive.file(path, { name: e.name }); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
archive.finalize(); |
|
|
|
|
|
|
|
|
|
return res.json({ |
|
|
|
|
code: 0, |
|
|
|
|
data: { |
|
|
|
|
name: namefile, |
|
|
|
|
path: `${cdnConfig.uri}/${user.id}/${namefile}`, |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} catch (ex) { |
|
|
|
|
return ErrorHandel(ex, req, res, next); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.forceDelete = (req, res, next) => { |
|
|
|
|
try { |
|
|
|
|
const path = req.body.path.replace(cdnConfig.uri, storageConfig.uri); |
|
|
|
|
// const newpath = req.body.path.replace(cdnConfig.uri, storageConfig.uri_backup);
|
|
|
|
|
fs.rm(path, { recursive: true }, err => { |
|
|
|
|
if (err) { |
|
|
|
|
return res.status(400).json({ code: 400, message: 'lỗi', detail: err }); |
|
|
|
|
} |
|
|
|
|
return res.json({ code: 0, message: 'success' }); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} catch (ex) { |
|
|
|
|
return ErrorHandel(ex, req, res, next); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
exports.deleteMultiple = (req, res, next) => { |
|
|
|
|
try { |
|
|
|
|
const user = req.user; |
|
|
|
|
const dir = `${storageConfig.uri_backup}/${user.id}`; |
|
|
|
|
multer({ dest: `${dir}` }); |
|
|
|
|
if (req.body.data) { |
|
|
|
|
req.body.data.forEach((e) => { |
|
|
|
|
const path = e.path.replace(cdnConfig.uri, storageConfig.uri); |
|
|
|
|
const newpath = e.path.replace(cdnConfig.uri, storageConfig.uri_backup); |
|
|
|
|
console.log(path, newpath); |
|
|
|
|
fs.rename(path, newpath, (err) => { |
|
|
|
|
if (err) throw err; |
|
|
|
|
return { code: 0, message: 'success' }; |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
return res.json({ code: 0, message: 'success' }); |
|
|
|
|
} catch (ex) { |
|
|
|
|
return ErrorHandel(ex, req, res, next); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|