| 
									
										
										
										
											2016-03-02 20:54:14 -08:00
										 |  |  | import { Observable, Disposable } from 'rx'; | 
					
						
							| 
									
										
										
										
											2016-01-27 11:34:44 -08:00
										 |  |  | import Fetchr from 'fetchr'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function callbackObserver(observer) { | 
					
						
							|  |  |  |   return (err, res) => { | 
					
						
							|  |  |  |     if (err) { | 
					
						
							|  |  |  |       return observer.onError(err); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     observer.onNext(res); | 
					
						
							| 
									
										
										
										
											2016-03-02 20:54:14 -08:00
										 |  |  |     return observer.onCompleted(); | 
					
						
							| 
									
										
										
										
											2016-01-27 11:34:44 -08:00
										 |  |  |   }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-12 17:09:07 +00:00
										 |  |  | export default function servicesCreator(options) { | 
					
						
							|  |  |  |   const services = new Fetchr(options); | 
					
						
							|  |  |  |   function readService$({ service: resource, params, config }) { | 
					
						
							|  |  |  |     return Observable.create(observer => { | 
					
						
							|  |  |  |       services.read( | 
					
						
							|  |  |  |         resource, | 
					
						
							|  |  |  |         params, | 
					
						
							|  |  |  |         config, | 
					
						
							|  |  |  |         callbackObserver(observer) | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |       return Disposable.create(() => observer.dispose()); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2016-01-27 11:34:44 -08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-11-12 17:09:07 +00:00
										 |  |  |   function createService$({ service: resource, params, body, config }) { | 
					
						
							|  |  |  |     return Observable.create(observer => { | 
					
						
							|  |  |  |       services.create( | 
					
						
							|  |  |  |         resource, | 
					
						
							|  |  |  |         params, | 
					
						
							|  |  |  |         body, | 
					
						
							|  |  |  |         config, | 
					
						
							|  |  |  |         callbackObserver(observer) | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |       return Disposable.create(() => observer.dispose()); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     readService$, | 
					
						
							|  |  |  |     createService$ | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |