脚本管理支持编辑删除文件

This commit is contained in:
hanhh
2021-08-19 14:18:25 +08:00
parent ff481ef7f3
commit 5e13264393
2 changed files with 176 additions and 4 deletions
+52 -1
View File
@@ -70,7 +70,10 @@ export default (app: Router) => {
path += '/';
}
if (config.writePathList.every((x) => !path.startsWith(x))) {
return res.send({ code: 400, data: '文件路径错误,可保存目录/ql/scripts、/ql/config、/ql/jbot、/ql/bak' });
return res.send({
code: 400,
data: '文件路径错误,可保存目录/ql/scripts、/ql/config、/ql/jbot、/ql/bak',
});
}
const filePath = `${path}${filename.replace(/\//g, '')}`;
const bakPath = '/ql/bak';
@@ -88,4 +91,52 @@ export default (app: Router) => {
}
},
);
route.put(
'/scripts',
celebrate({
body: Joi.object({
filename: Joi.string().required(),
content: Joi.string().required(),
}),
}),
async (req: Request, res: Response, next: NextFunction) => {
const logger: Logger = Container.get('logger');
try {
let { filename, content } = req.body as {
filename: string;
content: string;
};
const filePath = `${config.scriptPath}${filename}`;
fs.writeFileSync(filePath, content);
return res.send({ code: 200 });
} catch (e) {
logger.error('🔥 error: %o', e);
return next(e);
}
},
);
route.delete(
'/scripts',
celebrate({
body: Joi.object({
filename: Joi.string().required(),
}),
}),
async (req: Request, res: Response, next: NextFunction) => {
const logger: Logger = Container.get('logger');
try {
let { filename } = req.body as {
filename: string;
};
const filePath = `${config.scriptPath}${filename}`;
fs.unlinkSync(filePath);
res.send({ code: 200 });
} catch (e) {
logger.error('🔥 error: %o', e);
return next(e);
}
},
);
};