summaryrefslogtreecommitdiffstats
path: root/server/router.js
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-05 01:48:06 +0200
committerChristian Hofmaier2018-08-05 01:48:06 +0200
commit0d653469ea504bd8f638d0534e20b69ce977d319 (patch)
tree54125f18c9400052b8fd3b9635c6f362b8647d9d /server/router.js
parent[permissions] add permission management (diff)
parent[webapp/groups] add generic table actions component for search and pagination... (diff)
downloadbas-0d653469ea504bd8f638d0534e20b69ce977d319.tar.gz
bas-0d653469ea504bd8f638d0534e20b69ce977d319.tar.xz
bas-0d653469ea504bd8f638d0534e20b69ce977d319.zip
merge
Diffstat (limited to 'server/router.js')
-rw-r--r--server/router.js57
1 files changed, 26 insertions, 31 deletions
diff --git a/server/router.js b/server/router.js
index bde35a8..53caca8 100644
--- a/server/router.js
+++ b/server/router.js
@@ -10,45 +10,40 @@ router.post('/signup', auth.signup)
router.post('/logout', auth.logout)
router.post('/changepassword', auth.changePassword)
+// Public callable functions.
+var ipxe = require(path.join(__dirname, 'api', 'ipxe'))
+router.get('/ipxe/loadScript', ipxe.get.loadScript)
+
+// ############ Legacy Code: TODO(Chris): Rework to api and get/post or delete! ############
// User API
var user = require(path.join(__dirname, 'api', 'user'))
router.get('/user/info', auth.verifyToken, user.info)
-// Groups API
-var groups = require(path.join(__dirname, 'api', 'groups'))
-router.get('/groups', groups.get)
-router.post('/groups', groups.post)
-
-// Clients API
-var clients = require(path.join(__dirname, 'api', 'clients'))
-router.get('/clients', clients.get)
-router.post('/clients', clients.post)
-
// Permissions API
var permissions = require(path.join(__dirname, 'api', 'permissions'))
router.get('/getRolesByUserid', permissions.getRolesByUserid)
router.post('/getRoleById', auth.verifyToken, permissions.getRoleById)
-// Shell API
-var shell = require(path.join(__dirname, 'lib', 'shell'))
-router.get('/shell/buildipxe', shell.buildIPXE)
-
-// Nodemailer API
-var nodemailer = require(path.join(__dirname, 'lib', 'nodemailer'))
-router.get('/mail/send', nodemailer.sendMail)
-
-// External backends API
-var backends = require(path.join(__dirname, 'api', 'backends'))
-router.get('/backends/getCredentialsByType', auth.verifyToken, backends.getCredentialsByType)
-router.get('/backends/getBackendInfoById', auth.verifyToken, backends.getBackendInfoById)
-router.get('/backends/getBackendList', auth.verifyToken, backends.getBackendList)
-router.get('/backends/getBackendTypes', backends.getBackendTypes)
-router.get('/backends/checkConnection', auth.verifyToken, backends.checkConnection)
-router.post('/backends/saveBackend', auth.verifyToken, backends.saveBackend)
-router.post('/backends/deleteBackends', auth.verifyToken, backends.deleteBackends)
-
-// Load ipxe scipts API
-var ipxeloader = require(path.join(__dirname, 'api', 'ipxe-loader'))
-router.get('/ipxe-loader/load-script', ipxeloader.loadScript)
+// ############################################################################
+
+// Dynamic API routes
+function mapApi (method) {
+ return function (req, res) {
+ var api = require(path.join(__dirname, 'api', req.params.api))
+ if (method in api && req.params.action in api[method]) {
+ api[method][req.params.action](req, res)
+ } else {
+ res.status(501).end()
+ }
+ }
+}
+
+// Every API can be called with /<api>/<action>
+router.get('/:api/:action', auth.verifyToken, mapApi('get'))
+router.post('/:api/:action', auth.verifyToken, mapApi('post'))
+
+router.use('*', (req, res) => {
+ res.status(404).end()
+})
module.exports = router