mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-24 01:18:01 +02:00
Validation logic should probably not be in the db-code
This commit is contained in:
parent
6133f4920b
commit
65225ffba0
@ -5,6 +5,8 @@ var featureDb = require('./featureDb');
|
|||||||
var NameExistsError = require('./error/NameExistsError');
|
var NameExistsError = require('./error/NameExistsError');
|
||||||
var NotFoundError = require('./error/NotFoundError');
|
var NotFoundError = require('./error/NotFoundError');
|
||||||
var ValidationError = require('./error/ValidationError');
|
var ValidationError = require('./error/ValidationError');
|
||||||
|
var Promise = require("bluebird");
|
||||||
|
|
||||||
var requestValidator = require('./error/requestValidator');
|
var requestValidator = require('./error/requestValidator');
|
||||||
|
|
||||||
module.exports = function (app) {
|
module.exports = function (app) {
|
||||||
@ -28,7 +30,7 @@ module.exports = function (app) {
|
|||||||
req.checkBody('name', 'Name must match format ^[a-zA-Z\\.\\-]+$').matches(/^[a-zA-Z\\.\\-]+$/i);
|
req.checkBody('name', 'Name must match format ^[a-zA-Z\\.\\-]+$').matches(/^[a-zA-Z\\.\\-]+$/i);
|
||||||
|
|
||||||
requestValidator(req)
|
requestValidator(req)
|
||||||
.then(featureDb.validateUniqueName)
|
.then(validateUniqueName)
|
||||||
.then(function() {
|
.then(function() {
|
||||||
return eventStore.create({
|
return eventStore.create({
|
||||||
type: eventType.featureCreated,
|
type: eventType.featureCreated,
|
||||||
@ -77,5 +79,16 @@ module.exports = function (app) {
|
|||||||
res.status(500).end();
|
res.status(500).end();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function validateUniqueName(req) {
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
featureDb.getFeature(req.body.name)
|
||||||
|
.then(function() {
|
||||||
|
reject(new NameExistsError("Feature name already exist"));
|
||||||
|
}, function() {
|
||||||
|
resolve(req);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,9 +2,7 @@ var eventStore = require('./eventStore');
|
|||||||
var eventType = require('./eventType');
|
var eventType = require('./eventType');
|
||||||
var logger = require('./logger');
|
var logger = require('./logger');
|
||||||
var knex = require('./dbPool');
|
var knex = require('./dbPool');
|
||||||
var Promise = require("bluebird");
|
|
||||||
var NotFoundError = require('./error/NotFoundError');
|
var NotFoundError = require('./error/NotFoundError');
|
||||||
var NameExistsError = require('./error/NameExistsError');
|
|
||||||
var FEATURE_COLUMNS = ['name', 'description', 'enabled', 'strategy_name', 'parameters'];
|
var FEATURE_COLUMNS = ['name', 'description', 'enabled', 'strategy_name', 'parameters'];
|
||||||
|
|
||||||
eventStore.on(eventType.featureCreated, function (event) {
|
eventStore.on(eventType.featureCreated, function (event) {
|
||||||
@ -64,20 +62,8 @@ function eventToRow(event) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateUniqueName(req) {
|
|
||||||
return new Promise(function(resolve, reject) {
|
|
||||||
getFeature(req.body.name)
|
|
||||||
.then(function() {
|
|
||||||
reject(new NameExistsError("Feature name already exist"));
|
|
||||||
}, function() {
|
|
||||||
resolve(req);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getFeatures: getFeatures,
|
getFeatures: getFeatures,
|
||||||
getFeature: getFeature,
|
getFeature: getFeature
|
||||||
validateUniqueName: validateUniqueName
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user