var express = require('express') var router = express.Router() var path = require('path') // Authentication routes var auth = require(path.join(__dirname, 'lib', 'authentication')) router.get('/auth', auth.auth) router.post('/login', auth.login) 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) // Permissions API var permissions = require(path.join(__dirname, 'api', 'permissions')) router.get('/getRolesByUserid', permissions.getRolesByUserid) router.post('/getRoleById', auth.verifyToken, permissions.getRoleById) // ############################################################################ // 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 // router.get('/:api/:action', auth.verifyToken, mapApi('get')) router.post('/:api/:action', auth.verifyToken, mapApi('post')) module.exports = router