@acaprojects/a2-composer
Version:
Angular 2 Interface for composer
105 lines • 3.69 kB
JavaScript
import { COMPOSER } from '../../../settings';
var MockRequestHandler = (function () {
function MockRequestHandler() {
this.handlers = {};
}
MockRequestHandler.prototype.register = function (url, data, fn) {
var parts = url.split('/');
var params = [];
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
var i = parts_1[_i];
if (i[0] === ':') {
params.push(i);
}
}
this.handlers[url] = {
data: data,
parts: parts,
route_params: params,
params: {},
fn: fn,
};
COMPOSER.log("HTTP(M)", "Registered handler for url \"" + url + "\"");
};
MockRequestHandler.prototype.unregister = function (url) {
if (this.handlers[url]) {
this.handlers[url] = null;
delete this.handlers[url];
COMPOSER.log("HTTP(M)", "Unregistered handler for url \"" + url + "\"");
}
};
MockRequestHandler.prototype.response = function (method, url, fragment) {
var handler = this.getHandler(url);
if (method === 'GET') {
if (handler) {
var resp = null;
if (handler.fn) {
var h = {
data: handler.data,
fragment: fragment,
params: handler.params,
};
resp = handler.fn(h);
}
else {
resp = handler.data;
}
COMPOSER.log("HTTP(M)", "Response to " + method + " for url \"" + url + "\"", resp);
return resp || {};
}
else {
var error = {
status: 404,
code: 404,
message: 'Requested resource was not found.',
data: {},
};
COMPOSER.log("HTTP(M)", "Response to " + method + " for url \"" + url + "\"", error);
return error;
}
}
else {
COMPOSER.log("HTTP(M)", "Response to " + method + " for url \"" + url + "\"", 'Success');
return {
message: 'Ok',
data: {},
};
}
};
MockRequestHandler.prototype.getHandler = function (url) {
if (url.indexOf('http') === 0) {
url = url.split('/').slice(3).join('/');
}
if (this.handlers[url]) {
return this.handlers[url];
}
console.log(this.handlers);
var parts = url.split('/');
for (var h in this.handlers) {
if (this.handlers.hasOwnProperty(h) &&
this.handlers[h].route_params &&
this.handlers[h].route_params.length > 0) {
var handler = this.handlers[h];
var count = 0;
for (var i = 0; i < handler.parts.length; i++) {
var p = handler.parts[i];
if (p === parts[i]) {
count++;
}
else if (p.indexOf(':') === 0) {
handler.params[p.split(':')[1]] = parts[i];
count++;
}
}
if (handler.parts.length === count) {
return handler;
}
}
}
return null;
};
return MockRequestHandler;
}());
export { MockRequestHandler };
export var MOCK_REQ_HANDLER = new MockRequestHandler();
//# sourceMappingURL=request-handler.mock.js.map