arma-server-web-admin/routes/servers.js
Björn Dahlgren b3d0fa8255 Refactor server creation, updating and deletion via API
Fixes accidental duplicate servers
2022-02-07 03:57:14 +01:00

74 lines
1.7 KiB
JavaScript

var express = require('express')
module.exports = function (manager, mods) {
var router = express.Router()
router.get('/', function (req, res) {
res.json(manager.getServers())
})
router.post('/', function (req, res) {
if (!req.body.title) {
res.status(400).send('Server title cannot be empty')
return
}
manager.addServer(req.body, function (err, server) {
if (err) {
return res.status(500).send(err)
}
res.status(201).send(server)
})
})
router.get('/:server', function (req, res) {
var server = manager.getServer(req.params.server)
res.json(server)
})
router.put('/:server', function (req, res) {
if (!req.body.title) {
res.status(400).send('Server title cannot be empty')
return
}
manager.update(req.params.server, req.body, function (err, server) {
if (err) {
return res.status(500).send(err)
}
res.status(200).send(server)
})
})
router.delete('/:server', function (req, res) {
manager.removeServer(req.params.server, function (err, server) {
if (err) {
return res.status(500).send(err)
}
res.status(204).send()
})
})
router.post('/:server/start', function (req, res) {
var server = manager.getServer(req.params.server)
server.start()
res.json({ status: 'ok', pid: server.pid })
})
router.post('/:server/stop', function (req, res) {
var server = manager.getServer(req.params.server)
server.stop(function () {
if (!server.pid) {
res.json({ status: true, pid: server.pid })
} else {
res.json({ status: false, pid: server.pid })
}
})
})
return router
}