mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	#18 eventRepository can now emit events
There is an example in eventRepositorySpec on how to listen on events.
This commit is contained in:
		
							parent
							
								
									93bf2b7e84
								
							
						
					
					
						commit
						50b56fd7a1
					
				@ -1,9 +1,12 @@
 | 
				
			|||||||
var db = require('./db');
 | 
					var db = require('./db');
 | 
				
			||||||
 | 
					var EventRepository = require('./eventRepository');
 | 
				
			||||||
 | 
					var eventDb = new EventRepository();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = function (app) {
 | 
					module.exports = function (app) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    app.get('/features', function (req, res) {
 | 
					    app.get('/features', function (req, res) {
 | 
				
			||||||
 | 
					        // TODO svelovla, fix this
 | 
				
			||||||
 | 
					        eventDb.create({name: 'testing method'});
 | 
				
			||||||
        db.getFeatures().then(function (features) {
 | 
					        db.getFeatures().then(function (features) {
 | 
				
			||||||
            res.json({features: features});
 | 
					            res.json({features: features});
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
@ -37,7 +40,6 @@ module.exports = function (app) {
 | 
				
			|||||||
        var body = req.body;
 | 
					        var body = req.body;
 | 
				
			||||||
        body.data.name = req.params.id;
 | 
					        body.data.name = req.params.id;
 | 
				
			||||||
        var event = {};
 | 
					        var event = {};
 | 
				
			||||||
        event.type = 'feature-update';
 | 
					 | 
				
			||||||
        event.user = req.connection.remoteAddress;
 | 
					        event.user = req.connection.remoteAddress;
 | 
				
			||||||
        event.comment = body.comment;
 | 
					        event.comment = body.comment;
 | 
				
			||||||
        event.data = body.data;
 | 
					        event.data = body.data;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								unleash-server/lib/eventRepository.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								unleash-server/lib/eventRepository.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					var util = require('util');
 | 
				
			||||||
 | 
					var EventEmitter = require('events').EventEmitter;
 | 
				
			||||||
 | 
					var events = require('./events');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function EventRepository() {
 | 
				
			||||||
 | 
					    EventEmitter.call(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					util.inherits(EventRepository, EventEmitter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EventRepository.prototype.create = function (obj) {
 | 
				
			||||||
 | 
					    this.emit(events.featureCreated, obj);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = EventRepository;
 | 
				
			||||||
							
								
								
									
										3
									
								
								unleash-server/lib/events.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								unleash-server/lib/events.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					    featureCreated : 'featureCreated'
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										22
									
								
								unleash-server/test/eventRepositorySpec.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								unleash-server/test/eventRepositorySpec.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					var assert = require('assert');
 | 
				
			||||||
 | 
					var events = require('../lib/events');
 | 
				
			||||||
 | 
					var EventRepository = require('../lib/eventRepository');
 | 
				
			||||||
 | 
					var eventRepository = new EventRepository();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('EventRepository', function () {
 | 
				
			||||||
 | 
					    describe('#create()', function () {
 | 
				
			||||||
 | 
					        it('should emit event', function (done) {
 | 
				
			||||||
 | 
					            eventRepository.on(events.featureCreated, function (x) {
 | 
				
			||||||
 | 
					                    assert(x);
 | 
				
			||||||
 | 
					                    done();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					            eventRepository.create({
 | 
				
			||||||
 | 
					                'name': 'mail-server.validate-email-addresses',
 | 
				
			||||||
 | 
					                'enabled': false,
 | 
				
			||||||
 | 
					                'strategy': 'default',
 | 
				
			||||||
 | 
					                'description': 'Feature description'
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user