reduced some duplication in handling error responses
This commit is contained in:
parent
f2ce3e9fe1
commit
9c7aaa4f98
|
@ -46,6 +46,16 @@ module.exports.create = function (deps, conf) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handlePromise(req, res, prom) {
|
||||||
|
prom.then(function (result) {
|
||||||
|
res.send(deps.recase.snakeCopy(result));
|
||||||
|
}).catch(function (err) {
|
||||||
|
res.statusCode = err.statusCode || 500;
|
||||||
|
err.message = err.message || err.toString();
|
||||||
|
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function isAuthorized(req, res, fn) {
|
function isAuthorized(req, res, fn) {
|
||||||
var auth = jwt.decode((req.headers.authorization||'').replace(/^bearer\s+/i, ''));
|
var auth = jwt.decode((req.headers.authorization||'').replace(/^bearer\s+/i, ''));
|
||||||
if (!auth) {
|
if (!auth) {
|
||||||
|
@ -369,7 +379,7 @@ module.exports.create = function (deps, conf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
var update;
|
var update;
|
||||||
if (req.params.group) {
|
if (req.params.group) {
|
||||||
update = {};
|
update = {};
|
||||||
|
@ -381,16 +391,13 @@ module.exports.create = function (deps, conf) {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
changer.update(update);
|
changer.update(update);
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (config) {
|
}).then(function (newConf) {
|
||||||
if (req.params.group) {
|
if (req.params.group) {
|
||||||
config = config[req.params.group];
|
return newConf[req.params.group];
|
||||||
}
|
}
|
||||||
res.send(deps.recase.snakeCopy(config));
|
return newConf;
|
||||||
}, function (err) {
|
|
||||||
res.statusCode = err.statusCode || 500;
|
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
|
|
||||||
config.extractModList = function (changer, params) {
|
config.extractModList = function (changer, params) {
|
||||||
|
@ -424,7 +431,7 @@ module.exports.create = function (deps, conf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
var modList = config.extractModList(changer, req.params);
|
var modList = config.extractModList(changer, req.params);
|
||||||
|
|
||||||
|
@ -436,12 +443,9 @@ module.exports.create = function (deps, conf) {
|
||||||
|
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (newConf) {
|
}).then(function (newConf) {
|
||||||
res.send(deps.recase.snakeCopy(config.extractModList(newConf, req.params)));
|
return config.extractModList(newConf, req.params);
|
||||||
}, function (err) {
|
|
||||||
res.statusCode = err.statusCode || 500;
|
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
config.restful.updateModule = function (req, res, next) {
|
config.restful.updateModule = function (req, res, next) {
|
||||||
if (req.params.group === 'domains') {
|
if (req.params.group === 'domains') {
|
||||||
|
@ -449,18 +453,17 @@ module.exports.create = function (deps, conf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
var modList = config.extractModList(changer, req.params);
|
var modList = config.extractModList(changer, req.params);
|
||||||
modList.update(req.params.modId, req.body);
|
modList.update(req.params.modId, req.body);
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (newConf) {
|
}).then(function (newConf) {
|
||||||
res.send(deps.recase.snakeCopy(config.extractModList(newConf, req.params)));
|
return config.extractModule(newConf, req.params).find(function (mod) {
|
||||||
}, function (err) {
|
return mod.id === req.params.modId;
|
||||||
res.statusCode = err.statusCode || 500;
|
});
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
config.restful.removeModule = function (req, res, next) {
|
config.restful.removeModule = function (req, res, next) {
|
||||||
if (req.params.group === 'domains') {
|
if (req.params.group === 'domains') {
|
||||||
|
@ -468,22 +471,19 @@ module.exports.create = function (deps, conf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
var modList = config.extractModList(changer, req.params);
|
var modList = config.extractModList(changer, req.params);
|
||||||
modList.remove(req.params.modId);
|
modList.remove(req.params.modId);
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (newConf) {
|
}).then(function (newConf) {
|
||||||
res.send(deps.recase.snakeCopy(config.extractModList(newConf, req.params)));
|
return config.extractModList(newConf, req.params);
|
||||||
}, function (err) {
|
|
||||||
res.statusCode = err.statusCode || 500;
|
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
|
|
||||||
config.restful.createDomain = function (req, res) {
|
config.restful.createDomain = function (req, res) {
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
|
|
||||||
var update = req.body;
|
var update = req.body;
|
||||||
|
@ -492,16 +492,13 @@ module.exports.create = function (deps, conf) {
|
||||||
}
|
}
|
||||||
update.forEach(changer.domains.add, changer.domains);
|
update.forEach(changer.domains.add, changer.domains);
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (config) {
|
}).then(function (newConf) {
|
||||||
res.send(deps.recase.snakeCopy(config.domains));
|
return newConf.domains;
|
||||||
}, function (err) {
|
|
||||||
res.statusCode = err.statusCode || 500;
|
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
config.restful.updateDomain = function (req, res) {
|
config.restful.updateDomain = function (req, res) {
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
if (req.body.modules) {
|
if (req.body.modules) {
|
||||||
throw Object.assign(new Error('do not add modules with this route'), {statusCode: 400});
|
throw Object.assign(new Error('do not add modules with this route'), {statusCode: 400});
|
||||||
}
|
}
|
||||||
|
@ -509,26 +506,22 @@ module.exports.create = function (deps, conf) {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
changer.domains.update(req.params.domId, req.body);
|
changer.domains.update(req.params.domId, req.body);
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (config) {
|
}).then(function (newConf) {
|
||||||
res.send(deps.recase.snakeCopy(config.domains));
|
return newConf.domains.find(function (dom) {
|
||||||
}, function (err) {
|
return dom.id === req.params.domId;
|
||||||
res.statusCode = err.statusCode || 500;
|
});
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
config.restful.removeDomain = function (req, res) {
|
config.restful.removeDomain = function (req, res) {
|
||||||
deps.PromiseA.resolve().then(function () {
|
var promise = deps.PromiseA.resolve().then(function () {
|
||||||
var changer = new (require('./config').ConfigChanger)(conf);
|
var changer = new (require('./config').ConfigChanger)(conf);
|
||||||
changer.domains.remove(req.params.domId);
|
changer.domains.remove(req.params.domId);
|
||||||
return config.save(changer);
|
return config.save(changer);
|
||||||
}).then(function (config) {
|
}).then(function (newConf) {
|
||||||
res.send(deps.recase.snakeCopy(config.domains));
|
return newConf.domains;
|
||||||
}, function (err) {
|
|
||||||
res.statusCode = err.statusCode || 500;
|
|
||||||
err.message = err.message || err.toString();
|
|
||||||
res.end(JSON.stringify({error: {message: err.message, code: err.code}}));
|
|
||||||
});
|
});
|
||||||
|
handlePromise(req, res, promise);
|
||||||
};
|
};
|
||||||
|
|
||||||
var app = require('express')();
|
var app = require('express')();
|
||||||
|
|
Loading…
Reference in New Issue