listeners.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. var mongoose = require('mongoose'),
  2. Account = mongoose.model('Account'),
  3. EventEmitter = require('events').EventEmitter,
  4. AccountController = require('../controllers/accounts');
  5. var eventEmitter = new EventEmitter(),
  6. ACCOUNTS_DELETE_BY_USER_ID_EVT = 'accounts.delete.by.user.id',
  7. ENTRIES_DELETE_BY_ACCOUNT_EVT = 'entries.delete.by.account';
  8. eventEmitter.on(ACCOUNTS_DELETE_BY_USER_ID_EVT, function(user_id) {
  9. Account.find({user_id: user_id}, function(errors, accounts) {
  10. if( errors ) {
  11. console.error('An error occurs during accounts deletion for user ' + user_id, errors);
  12. return;
  13. }
  14. if( !accounts ) {
  15. console.log('No accounts');
  16. return;
  17. }
  18. for( var index in accounts ) {
  19. eventEmitter.emit(ENTRIES_DELETE_BY_ACCOUNT_EVT, accounts[index]);
  20. }
  21. });
  22. });
  23. eventEmitter.on(ENTRIES_DELETE_BY_ACCOUNT_EVT, AccountController.delete_account);
  24. module.exports = {
  25. events : {
  26. ACCOUNTS_DELETE_BY_USER_ID_EVT: ACCOUNTS_DELETE_BY_USER_ID_EVT,
  27. ENTRIES_DELETE_BY_ACCOUNT_EVT: ENTRIES_DELETE_BY_ACCOUNT_EVT
  28. },
  29. eventEmitter: eventEmitter
  30. }