TwoToc code
[YouAndWeb_TwoToc] / server / api / message / message.events.js
diff --git a/server/api/message/message.events.js b/server/api/message/message.events.js
new file mode 100755 (executable)
index 0000000..276c787
--- /dev/null
@@ -0,0 +1,33 @@
+/**
+ * Message model events
+ */
+
+'use strict';
+
+var EventEmitter = require('events').EventEmitter;
+var Message = require('./message.model');
+var MessageEvents = new EventEmitter();
+
+// Set max event listeners (0 == unlimited)
+MessageEvents.setMaxListeners(0);
+
+// Model events
+var events = {
+  'save': 'save',
+  'remove': 'remove'
+};
+
+// Register the event emitter to the model events
+for (var e in events) {
+  var event = events[e];
+  Message.schema.post(e, emitEvent(event));
+}
+
+function emitEvent(event) {
+  return function(doc) {
+    MessageEvents.emit(event + ':' + doc._id, doc);
+    MessageEvents.emit(event, doc);
+  }
+}
+
+module.exports = MessageEvents;