'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _DateTimeHelper = require('./DateTimeHelper');
var _DateTimeHelper2 = _interopRequireDefault(_DateTimeHelper);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var API_HOST = 'api.riotgames.com';
var API_VERSION = 'v3';
var createRequestURL = function createRequestURL(platformID, serviceName, endpoint) {
return 'https://' + platformID + '.' + API_HOST + '/lol/' + serviceName + '/' + API_VERSION + '/' + endpoint;
};
var getURLWithKey = function getURLWithKey(platformID, serviceName, endpoint, key) {
var requestURL = createRequestURL(platformID, serviceName, endpoint);
return requestURL + getAPIKey(requestURL, key);
};
var getAPIKey = function getAPIKey(url, key) {
return (url.lastIndexOf('?') === -1 ? '?' : '&') + 'api_key=' + (key ? key : '');
};
var appendKey = function appendKey(str, key, value) {
return str + (str ? '&' : '') + (key + '=' + value);
};
var arrayToOptions = function arrayToOptions(array) {
return array.reduce(function (final, curr) {
return _extends({}, final, curr);
}, {});
};
var stringifyOptions = function stringifyOptions(options, endUrl) {
var stringifiedOpts = '';
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = Object.keys(options)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var key = _step.value;
if (Array.isArray(options[key])) {
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = options[key][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var value = _step2.value;
stringifiedOpts = appendKey(stringifiedOpts, key, value);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
} else {
if (_DateTimeHelper2.default.checkIfDateParam(key)) {
options[key] = _DateTimeHelper2.default.getEpoch(options[key]);
}
stringifiedOpts = appendKey(stringifiedOpts, key, options[key]);
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return stringifiedOpts;
};
var getQueryParamString = function getQueryParamString(arrayOfOpts) {
var str = stringifyOptions(arrayToOptions(arrayOfOpts));
return str ? '?' + encodeURI(str) : '';
};
var getURLWithQuery = function getURLWithQuery(region, serviceName, endpoint, queryArray) {
return createRequestURL(region, serviceName, endpoint) + getQueryParamString(queryArray);
};
exports.default = {
createRequestURL: createRequestURL,
getURLWithKey: getURLWithKey,
getURLWithQuery: getURLWithQuery,
getAPIKey: getAPIKey
}; |