45 lines
		
	
	
		
			1021 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1021 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { Observable, Disposable } from 'rx';
 | 
						|
import Fetchr from 'fetchr';
 | 
						|
 | 
						|
function callbackObserver(observer) {
 | 
						|
  return (err, res) => {
 | 
						|
    if (err) {
 | 
						|
      return observer.onError(err);
 | 
						|
    }
 | 
						|
 | 
						|
    observer.onNext(res);
 | 
						|
    return observer.onCompleted();
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
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());
 | 
						|
    });
 | 
						|
  }
 | 
						|
  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$
 | 
						|
  };
 | 
						|
}
 |