TwoToc code
[YouAndWeb_TwoToc] / server / api / category / category.events.js
1 /**
2  * Category model events
3  */
4
5 'use strict';
6
7 var EventEmitter = require('events').EventEmitter;
8 var Category = require('./category.model');
9 var CategoryEvents = new EventEmitter();
10
11 // Set max event listeners (0 == unlimited)
12 CategoryEvents.setMaxListeners(0);
13
14 // Model events
15 var events = {
16   'save': 'save',
17   'remove': 'remove'
18 };
19
20 // Register the event emitter to the model events
21 for (var e in events) {
22   var event = events[e];
23   Category.schema.post(e, emitEvent(event));
24 }
25
26 function emitEvent(event) {
27   return function(doc) {
28     CategoryEvents.emit(event + ':' + doc._id, doc);
29     CategoryEvents.emit(event, doc);
30   }
31 }
32
33 module.exports = CategoryEvents;