From fe16a74faabe3932dbd63a05e71c08885464d5b7 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Tue, 22 Dec 2015 19:32:12 -0800 Subject: [PATCH] Add services stamp --- common/app/Cat.js | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/common/app/Cat.js b/common/app/Cat.js index 31dae9d294..fb442e3db6 100644 --- a/common/app/Cat.js +++ b/common/app/Cat.js @@ -1,17 +1,40 @@ import { Cat } from 'thundercats'; +import stamp from 'stampit'; +import { Disposable, Observable } from 'rx'; import { AppActions, AppStore } from './flux'; -import { HikesActions, HikesStore } from './routes/Hikes/flux'; +import { HikesActions } from './routes/Hikes/flux'; import { JobActions, JobsStore} from './routes/Jobs/flux'; -export default Cat() - .init(({ instance: cat, args: [services] }) => { - cat.register(AppActions, null, services); - cat.register(AppStore, null, cat); +export default Cat().init(({ instance: cat, args: [services] }) => { + const serviceStamp = stamp({ + methods: { + readService$(resource, params, config) { - cat.register(HikesActions, null, services); - cat.register(HikesStore, null, cat); + return Observable.create(function(observer) { + services.read(resource, params, config, (err, res) => { + if (err) { + observer.onError(err); + return observer.onCompleted(); + } - cat.register(JobActions, null, cat, services); - cat.register(JobsStore, null, cat); + observer.onNext(res); + observer.onCompleted(); + }); + + return Disposable.create(function() { + observer.onCompleted(); + }); + }); + } + } }); + + cat.register(HikesActions.compose(serviceStamp), null, services); + cat.register(AppActions.compose(serviceStamp), null, services); + cat.register(AppStore, null, cat); + + + cat.register(JobActions, null, cat, services); + cat.register(JobsStore.compose(serviceStamp), null, cat); +});