@aca-1/a2-composer
Version:
Angular 2 Interface for composer
61 lines • 2.13 kB
JavaScript
import { Observable } from 'rxjs/Observable';
import { MOCK_REQ_HANDLER } from './request-handler.mock';
var MockRequest = (function () {
function MockRequest(method, url, data, options) {
this.method = method;
this.url = url;
this.data = data;
this.options = options;
this.resp_fn = null;
this.response = null;
this.fragments = {};
this.getFragments(url);
if (url.indexOf('http') === 0) {
url = '/' + url.split('/').slice(3).join('/');
}
this.getFragments(url);
}
MockRequest.prototype.map = function (fn) {
this.resp_fn = fn;
return this;
};
MockRequest.prototype.subscribe = function (data, error, complete) {
var _this = this;
return new Observable(function (observer) {
setTimeout(function () {
var res = MOCK_REQ_HANDLER.response(_this.method, _this.url, _this.fragments);
if (res.status === 400 || res.status === 404) {
observer.error(res);
}
else {
observer.next(res);
}
setTimeout(function () {
observer.complete();
}, 200);
}, 200);
}).subscribe(data, error, complete);
};
MockRequest.prototype.getFragments = function (url) {
var url_parts = url.split('?');
this.url = url_parts[0];
var frag = url_parts.length > 1 ? url_parts[1] : null;
var parts = {};
if (frag) {
var params = frag.split('&');
if (params.length > 0) {
for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {
var item = params_1[_i];
var pair = item.split('=');
if (pair.length === 2) {
parts[pair[0]] = pair[1];
}
}
}
}
this.fragments = parts;
};
return MockRequest;
}());
export { MockRequest };
//# sourceMappingURL=request.mock.js.map