UNPKG

riot-api-stats

Version:

Riot API Stats service

43 lines (34 loc) 2.33 kB
'use strict';Object.defineProperty(exports, "__esModule", { value: true });var _axios = require('axios');var _axios2 = _interopRequireDefault(_axios); var _querystring = require('querystring');var _querystring2 = _interopRequireDefault(_querystring);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _asyncToGenerator(fn) {return function () {var gen = fn.apply(this, arguments);return new Promise(function (resolve, reject) {function step(key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {return Promise.resolve(value).then(function (value) {step("next", value);}, function (err) {step("throw", err);});}}return step("next");});};} class Matchlist { constructor(summonerId, region = 'euw', options = {}) { this.summonerId = summonerId; this.region = region; this.options = Object.assign(options.beginTime || options.beginIndex || options.endTime || options.endIndex || options.seasons ? {} : { beginTime: '1481108400000' }, options); this.metadata = {}; this.matchlist = []; } load() {var _this = this;return _asyncToGenerator(function* () { const url = `https://${_this.region}.api.riotgames.com/api/lol/${_this.region.toUpperCase()}/v2.2/matchlist/by-summoner/${_this.summonerId}`; const query = _querystring2.default.stringify({ seasons: _this._toStringifyOption('seasons'), rankedQueues: _this._toStringifyOption('rankedQueues'), championIds: _this._toStringifyOption('championIds'), beginTime: _this.options.beginTime, endTime: _this.options.endTime, beginIndex: _this.options.beginIndex, endIndex: _this.options.endIndex, api_key: process.env.RIOT_API_KEY }); let { data: { matches = [], startIndex, endIndex, totalGames } } = yield _axios2.default.get(`${url}?${query}`); _this.metadata = { startIndex, endIndex, totalGames }; _this.matchlist = matches; return { matchlist: matches, metadata: _this.metadata };})(); } _toStringifyOption(key) { if (!this.options[key]) { return null; } return typeof this.options[key] === 'string' ? this.options[key] : this.options[key].join(','); }}exports.default = Matchlist;