UNPKG

@aca-1/a2-composer

Version:
61 lines 2.13 kB
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