Code coverage report for server/boot/a-extendUser.js

Statements: 34.78% (8 / 23)      Branches: 0% (0 / 8)      Functions: 14.29% (1 / 7)      Lines: 36.36% (8 / 22)      Ignored: none     

All files » server/boot/ » a-extendUser.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 411 1   1                   1 1 1 1 1                                              
var Rx = require('rx');
var debug = require('debug')('freecc:user:remote');
 
function destroyById(id, Model) {
  return Rx.Observable.create(function(observer) {
    Model.destroyById(id, function(err) {
      if (err) { return observer.onError(err); }
      observer.onCompleted();
    });
    return Rx.Disposable(Rx.helpers.noop);
  });
}
 
module.exports = function(app) {
  var User = app.models.User;
  var UserIdentity = app.models.UserIdentity;
  var UserCredential = app.models.UserCredential;
  User.observe('after delete', function(ctx, next) {
    debug('removing user', ctx.where);
    var id = ctx.where && ctx.where.id ? ctx.where.id : null;
    if (!id) {
      return next();
    }
    Rx.Observable.combineLatest(
      destroyById(id, UserIdentity),
      destroyById(id, UserCredential),
      Rx.helpers.noop
    ).subscribe(
      Rx.helpers.noop,
      function(err) {
        debug('error deleting user %s stuff', id, err);
        next(err);
      },
      function() {
        debug('user stuff deleted for user %s', id);
        next();
      }
    );
  });
};