arma-server-web-admin/routes/servers.js

90 lines
1.9 KiB
JavaScript
Raw Normal View History

var playwithsix = require('playwithsix');
2014-04-04 08:37:43 +00:00
2014-06-04 22:19:29 +00:00
var manager = require('./../manager');
2014-04-04 08:37:43 +00:00
function removeDuplicates(mods) {
return mods.reduce(function(a,b){
if (a.indexOf(b) < 0 ) a.push(b);
return a;
},[]);
}
function resolveMods(server, cb) {
playwithsix.resolveDependencies(server.mods, function (err, mods) {
if (!err && mods) {
server.mods = removeDuplicates(server.mods.concat(mods));
manager.save();
}
cb(err);
});
}
2014-04-04 08:37:43 +00:00
exports.index = function (req, res){
2014-04-06 22:58:17 +00:00
var servers = [];
manager.getServers().forEach(function (server) {
servers.push({
id: server.id,
title: server.title,
port: server.port,
mods: server.mods,
pid: server.pid,
});
2014-04-06 22:58:17 +00:00
});
res.send(servers);
2014-04-04 08:37:43 +00:00
};
exports.create = function (req, res){
var server = manager.addServer(req.body);
if (server.mods.length > 0) {
resolveMods(server, function(err) {
res.send(server);
});
} else {
res.send(server);
}
2014-04-04 08:37:43 +00:00
};
2014-04-06 21:09:52 +00:00
exports.show = function (req, res){
var server = manager.getServer(req.params.server);
2014-06-04 22:17:18 +00:00
res.send(server);
2014-04-06 21:09:52 +00:00
};
2014-04-04 08:37:43 +00:00
exports.update = function(req, res){
2014-04-08 20:59:59 +00:00
var server = manager.getServer(req.params.server);
server.update(req.body);
manager.save();
2014-04-08 20:59:59 +00:00
if (server.mods.length > 0) {
resolveMods(server, function(err) {
2014-06-04 22:17:18 +00:00
res.send(server);
});
} else {
2014-06-04 22:17:18 +00:00
res.send(server);
}
2014-04-04 08:37:43 +00:00
};
exports.destroy = function(req, res){
var server = manager.removeServer(req.params.server);
res.send(server);
2014-04-04 08:37:43 +00:00
};
2014-04-06 21:09:52 +00:00
exports.start = function (req, res){
var server = manager.getServer(req.params.server);
server.start();
2014-04-06 22:58:17 +00:00
res.send({status:"ok", pid: server.pid});
};
exports.stop = function (req, res){
var server = manager.getServer(req.params.server);
server.stop(function () {
if (!server.pid) {
res.send({status: true, pid: server.pid});
} else {
res.send({status: false, pid: server.pid});
}
});
2014-04-06 21:09:52 +00:00
};