新增 基本测试 API 样例

This commit is contained in:
Suwings 2020-07-17 18:57:14 +08:00
parent 3ceb84d6c0
commit 2655573437
2 changed files with 91 additions and 28 deletions

22
helper/ApiResponse.js Normal file
View File

@ -0,0 +1,22 @@
// 针对API返回的数据缩写的服务模块
class NullError {
message = null
}
module.exports.ok = (res, statusCode = 200) => {
res.send(JSON.stringify({
status: statusCode
}));
res.end();
}
module.exports.error = (res, error = new NullError(), statusCode = 500) => {
res.send(JSON.stringify({
status: statusCode,
error: error.message
}));
res.end();
}

View File

@ -1,9 +1,14 @@
const router = require('express')();
const serverModel = require('../model/ServerModel');
const fs = require('fs');
const userModel = require('../model/UserModel');
const mcPingProtocol = require('../helper/MCPingProtocol');
const apiResponse = require('../helper/ApiResponse');
//公开 服务端状态获取 JSON格式
const fs = require('fs');
// 服务端实例状态获取 | 公共性 API 接口
// 无需任何权限判定
router.all('/status/:name', function (req, res) {
if (MCSERVER.localProperty.allow_status_api) {
res.send("管理员禁止此项功能 | Access denied");
@ -46,33 +51,69 @@ router.all('/status/:name', function (req, res) {
});
//公开 服务端状态获取 可视模式
// router.all('/status/:name', function (req, res) {
// if (MCSERVER.localProperty.allow_status_api) {
// res.send("管理员禁止此项功能 | Access denied");
// return;
// }
// let params = req.params || {};
// let serverName = params.name || "";
// //十分简单的网页模板
// try {
// let template = fs.readFileSync("./public/template/api_server.html").toString();
// let mcserver = serverModel.ServerManager().getServer(serverName.trim());
// if (mcserver == null) {
// res.send("Not Found");
// return;
// }
// //渲染模板
// template = template.replace(/\$servername/igm, serverName);
// template = template.replace(/\$last_time/igm, mcserver.dataModel.lastDate);
// template = template.replace(/\$status/igm, mcserver.isRun() ? "正在运行" : "关闭");
// 创建实例 API
router.post('/create_server', function (req, res) {
// 解析请求参数
const params = JSON.parse(req.body);
const result = serverModel.createServer(params);
// 返回状态码
result ? apiResponse.ok(res) : apiResponse.error(res);
});
// 删除实例 API
router.all('/delete_server/:name', function (req, res) {
// 解析请求参数
const params = req.params.name;
try {
const result = serverModel.deleteServer(params);
apiResponse.ok(res);
} catch (err) {
apiResponse.error(res, err);
}
res.end();
});
// 创建用户 API
// params.username
// params.password
// params.serverList
router.post('/create_user', function (req, res) {
try {
// 解析请求参数
const params = JSON.parse(req.body);
// 注册用户
userModel.userCenter().register(params.username, params.password);
// 注册其名下的服务端实例
userModel.userCenter().get(params.username).allowedServer(params.serverList);
// 数据模型保存
userModel.userCenter().get(username).dataModel.save();
// 返回状态码
apiResponse.ok(res);
} catch (err) {
apiResponse.error(res, err);
}
});
// 删除用户 API
router.post('/delete_user/:name', function (req, res) {
try {
// 解析请求参数
const userName = req.params.name;
// 注册用户
userModel.userCenter().deleteUser(userName);
// 返回状态码
apiResponse.ok(res);
} catch (err) {
apiResponse.error(res, err);
}
});
// res.send(template);
// } catch (err) {
// MCSERVER.error('API 处理异常:', err);
// }
// res.end();
// });
//模块导出