mirror of
https://github.com/MCSManager/MCSManager.git
synced 2025-02-11 15:49:53 +08:00
新增 基本测试 API 样例
This commit is contained in:
parent
3ceb84d6c0
commit
2655573437
22
helper/ApiResponse.js
Normal file
22
helper/ApiResponse.js
Normal 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();
|
||||
}
|
97
route/api.js
97
route/api.js
@ -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();
|
||||
// });
|
||||
|
||||
|
||||
//模块导出
|
||||
|
Loading…
Reference in New Issue
Block a user