refactor rxify stories

fixes many bugs
This commit is contained in:
Berkeley Martinez
2015-06-25 15:03:46 -07:00
parent 95b0884df5
commit 13590a1331
4 changed files with 380 additions and 397 deletions

View File

@@ -1,24 +1,27 @@
var Rx = require('rx');
var debug = require('debug')('freecc:rxUtils');
exports.saveUser = function saveUser(user) {
exports.saveInstance = function saveInstance(instance) {
return new Rx.Observable.create(function(observer) {
if (!user || typeof user.save !== 'function') {
debug('no user or save method');
if (!instance || typeof instance.save !== 'function') {
debug('no instance or save method');
observer.onNext();
return observer.onCompleted();
}
user.save(function(err, savedUser) {
instance.save(function(err, savedInstance) {
if (err) {
return observer.onError(err);
}
debug('user saved');
observer.onNext(savedUser);
debug('instance saved');
observer.onNext(savedInstance);
observer.onCompleted();
});
});
};
// alias saveInstance
exports.saveUser = exports.saveInstance;
exports.observableQueryFromModel =
function observableQueryFromModel(Model, method, query) {
return Rx.Observable.fromNodeCallback(Model[method], Model)(query);