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$
|
||
|
};
|
||
|
}
|