mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Patch events should update features.
This commit is contained in:
		
							parent
							
								
									91e9141a01
								
							
						
					
					
						commit
						bd8aecc664
					
				| @ -11,8 +11,8 @@ module.exports = function (app) { | ||||
|         }); | ||||
|     }); | ||||
| 
 | ||||
|     app.get('/features/:id', function (req, res) { | ||||
|         featureDb.getFeature(req.params.id).then(function (feature) { | ||||
|     app.get('/features/:featureName', function (req, res) { | ||||
|         featureDb.getFeature(req.params.featureName).then(function (feature) { | ||||
|             if (feature) { | ||||
|                 res.json(feature); | ||||
|             } else { | ||||
| @ -45,16 +45,23 @@ module.exports = function (app) { | ||||
|     }); | ||||
| 
 | ||||
|     app.patch('/features/:featureName', function (req, res) { | ||||
|         var featureName = req.params.featureName; | ||||
|         var featureName = req.params.featureName, | ||||
|             createdBy = req.connection.remoteAddress, | ||||
|             changeRequest = req.body; | ||||
| 
 | ||||
|         changeRequest.name = featureName; | ||||
| 
 | ||||
|         featureDb.getFeature(featureName).then( | ||||
|             function () { | ||||
|                 var changeRequest = req.body; | ||||
|                 var event = {}; | ||||
|                 event.type = eventType.featureUpdated; | ||||
|                 event.user = req.connection.remoteAddress; | ||||
|                 event.data = changeRequest; | ||||
|                 eventStore.create({ | ||||
|                     type: eventType.featureUpdated, | ||||
|                     createdBy: createdBy, | ||||
|                     data: changeRequest | ||||
|                 }).then(function () { | ||||
|                     res.status(202).end(); | ||||
|                 }, function () { | ||||
|                     res.status(500).end(); | ||||
|                 }); | ||||
|             }, | ||||
|             function () { | ||||
|                 res.status(404).end(); | ||||
|  | ||||
| @ -21,6 +21,41 @@ eventStore.on(eventType.featureCreated, function (event) { | ||||
|     } | ||||
| ); | ||||
| 
 | ||||
| eventStore.on(eventType.featureUpdated, function (event) { | ||||
|         var sql, params; | ||||
|         var changeRequest = event.data; | ||||
| 
 | ||||
|         switch (changeRequest.field) { | ||||
|             case 'enabled': | ||||
|                 sql = 'UPDATE features SET enabled = $1 WHERE name=$2'; | ||||
|                 params = [event.data.value ? 1 : 0, event.data.name]; | ||||
|                 break; | ||||
|             case 'strategy': | ||||
|                 sql = 'UPDATE features SET strategy_name = $1 WHERE name=$2'; | ||||
|                 params = [event.data.value, event.data.name]; | ||||
|                 break; | ||||
|             case 'parameters': | ||||
|                 sql = 'UPDATE features SET parameters = $1 WHERE name=$2'; | ||||
|                 params = [event.data.value, event.data.name]; | ||||
|                 break; | ||||
|             default: | ||||
|                 break; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         if(sql && params) { | ||||
|             dbPool.query(sql, params, function(err) { | ||||
|                 if(err) { | ||||
|                     logger.error('Could not update feature, error was: ', err); | ||||
|                 } | ||||
|             }); | ||||
|         } else { | ||||
|             logger.error("Could not handle feature-update event", event); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| ); | ||||
| 
 | ||||
| function getFeatures() { | ||||
|     var sql = 'SELECT name, enabled, strategy_name as strategy, parameters FROM features ORDER BY created_at'; | ||||
|     return new Promise(function (resolve, reject) { | ||||
|  | ||||
| @ -1,7 +1,6 @@ | ||||
| var Promise = require('bluebird'); | ||||
| 
 | ||||
| function storeEvent(event) { | ||||
|     console.log('using eventDbMock to store: ', event); | ||||
|     return new Promise(function (resolve) { | ||||
|         resolve(); | ||||
|     }); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user