mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-18 01:18:23 +02: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