// import httpStatus from 'http-status'; import fs from 'fs'; import { handler as ErrorHandel } from '../../middlewares/errors'; // import ApiException from '../../../common/utils/APIException'; import { cdn as cdnConfig, storage as storageConfig } from '../../../config/vars'; import uploadAdapter from '../../../common/services/adapters/upload-adapter'; /** * get file and folder * * @param {Formdata} file */ exports.get = (req, res, next) => { try { const user = req.user; let path = `${storageConfig.uri}/${user.id}`; // let path = storageConfig.uri; if (req.body.path) { path += req.body.path; } const listFile = []; fs.readdir(path, (err, files) => { if (files && files.length > 0) { files.forEach((item) => { listFile.push({ name: item, path: `${cdnConfig.uri}/${user.id}${req.body.path}/${item}`, isFolder: fs.lstatSync(`${storageConfig.uri}/${user.id}/${req.body.path}/${item}`).isDirectory() }); }); } return res.json({ code: 0, data: listFile }); }); return null; /** resize image uploaded */ } catch (ex) { return ErrorHandel(ex, req, res, next); } }; /** * get file and folder * * @param {Formdata} file */ exports.create = (req, res, next) => { const user = req.user; let dir = `${user.id}`; console.log(dir); if (req.body.path) { dir += req.body.path; } if (req.body.name) { dir += `/${req.body.name}`; } if (!fs.existsSync(dir)) { uploadAdapter.createFolder({ path: dir }); } return res.json({ code: 0, message: 'success' }); }; /** * get file and folder * * @param {Formdata} file */ exports.update = (req, res, next) => { try { console.log(cdnConfig.uri, storageConfig.uri); const oldPath = req.body.oldPath.replace(cdnConfig.uri, storageConfig.uri); const newPath = req.body.newPath.replace(cdnConfig.uri, storageConfig.uri); console.log('aaa', oldPath, newPath); fs.rename(oldPath, newPath, (err) => { if (err) { console.log(err); return res.status(400).json({ code: 400, message: 'lỗi' }); } return res.json({ code: 0, message: 'success' }); }); return null; } catch (ex) { return ErrorHandel(ex, req, res, next); } }; exports.delete = (req, res, next) => { try { const path = req.body.path.replace(cdnConfig.uri, storageConfig.uri); 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); } };