fh-wfm-user
Version:
73 lines (62 loc) • 1.61 kB
JavaScript
;
var express = require('express')
, config = require('../../config/config-user');
/**
*
* Router for handling cloud user requests
*
* @param {UserOperations} userOperations
* @returns {*}
*/
function initRouter(userOperations) {
var router = express.Router();
router.route('/').get(function(req, res, next) {
userOperations.list().then(function(users) {
res.json(users);
}, function(error) {
next(error);
});
});
router.route('/config/authpolicy').get(function(req, res) {
res.json(config.policyId);
});
router.route('/:id').get(function(req, res, next) {
userOperations.read(req.params.id).then(function(user) {
res.json(user);
}, function(error) {
next(error);
});
});
router.route('/:id').put(function(req, res, next) {
userOperations.update(req.body).then(function(user) {
res.json(user);
}, function(error) {
next(error);
});
});
router.route('/').post(function(req, res, next) {
userOperations.create(req.body).then(function(user) {
res.json(user);
}, function(error) {
next(error);
});
});
router.route('/:id').delete(function(req, res, next) {
userOperations.remove(req.body).then(function(user) {
res.json(user);
}, function(error) {
next(error);
});
});
return router;
}
/**
* Route User requests to config.apiPath endpoint
*
* @param app
* @param {UserOperations} userOperations
*/
module.exports = function(app, userOperations) {
var router = initRouter(userOperations);
app.use(config.apiPath, router);
};