diff --git a/unleash-server/lib/api.js b/unleash-server/lib/api.js index a4f86e7f95..c97d7fc694 100644 --- a/unleash-server/lib/api.js +++ b/unleash-server/lib/api.js @@ -1,9 +1,12 @@ var db = require('./db'); - +var EventRepository = require('./eventRepository'); +var eventDb = new EventRepository(); module.exports = function (app) { app.get('/features', function (req, res) { + // TODO svelovla, fix this + eventDb.create({name: 'testing method'}); db.getFeatures().then(function (features) { res.json({features: features}); }); @@ -37,7 +40,6 @@ module.exports = function (app) { var body = req.body; body.data.name = req.params.id; var event = {}; - event.type = 'feature-update'; event.user = req.connection.remoteAddress; event.comment = body.comment; event.data = body.data; diff --git a/unleash-server/lib/eventRepository.js b/unleash-server/lib/eventRepository.js new file mode 100644 index 0000000000..d69b46ec29 --- /dev/null +++ b/unleash-server/lib/eventRepository.js @@ -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; diff --git a/unleash-server/lib/events.js b/unleash-server/lib/events.js new file mode 100644 index 0000000000..c58133a422 --- /dev/null +++ b/unleash-server/lib/events.js @@ -0,0 +1,3 @@ +module.exports = { + featureCreated : 'featureCreated' +}; \ No newline at end of file diff --git a/unleash-server/test/eventRepositorySpec.js b/unleash-server/test/eventRepositorySpec.js new file mode 100644 index 0000000000..6f0ded52fa --- /dev/null +++ b/unleash-server/test/eventRepositorySpec.js @@ -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' + }); + }); + }); +});