UNPKG

league-wrapper

Version:

REST API Wrapper for the League of Legends API

207 lines (186 loc) 6.85 kB
'use strict'; const LeagueDto = require('../dto/league/league-dto.js'); const queueTypeHelper = require('../helper/queue-type.js'); const QueueType = require('../league-wrapper.js').QueueType; const Service = require('../service.js'); /** * @class * @alias module:LeagueWrapper/service~LeagueService * @extends Service */ class LeagueService extends Service { constructor(api) { super(api); } /** * @callback module:LeagueWrapper/service~LeagueService~getBySummonerIds * @param {?Error} error * @param {Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>} [data] */ /** * @todo example * @param {number[]|number} summonerIds * @param {?module:LeagueWrapper/options~RequestOptions} [options] * @param {module:LeagueWrapper/service~LeagueService~getBySummonerIds} [callback] * * @return {Promise.<Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>>} */ getBySummonerIds(summonerIds, options, callback) { if (typeof summonerIds === 'number') { summonerIds = [summonerIds]; } if (summonerIds.length > 10) { // @todo: Multicall return super._fail(new Error('Maximum allowed summoner IDs at once is 10'), callback); } options = Object.assign({ path: '/api/lol/${region}/v2.5/league/by-summoner/${summonerIds}', params: { summonerIds: summonerIds.join(',') }, returnType: [String, [LeagueDto]] }, options); return super.request(options).execute(callback); } /** * @callback module:LeagueWrapper/service~LeagueService~getEntriesBySummonerIds * @param {?Error} error * @param {Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>} [data] */ /** * @todo example * @param {number[]|number} summonerIds * @param {?module:LeagueWrapper/options~RequestOptions} [options] * @param {module:LeagueWrapper/service~LeagueService~getEntriesBySummonerIds} [callback] * * @return {Promise.<Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>>} */ getEntriesBySummonerIds(summonerIds, options, callback) { if (typeof summonerIds === 'number') { summonerIds = [summonerIds]; } if (summonerIds.length > 10) { // @todo: Multicall return super._fail(new Error('Maximum allowed summoner IDs at once is 10'), callback); } options = Object.assign({ path: '/api/lol/${region}/v2.5/league/by-summoner/${summonerIds}/entry', params: { summonerIds: summonerIds.join(',') }, returnType: [String, [LeagueDto]] }, options); return super.request(options).execute(callback); } /** * @callback module:LeagueWrapper/service~LeagueService~getByTeamIds * @param {?Error} error * @param {Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>} [data] */ /** * @todo example * @param {number[]|number} teamIds * @param {?module:LeagueWrapper/options~RequestOptions} [options] * @param {module:LeagueWrapper/service~LeagueService~getByTeamIds} [callback] * * @return {Promise.<Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>>} */ getByTeamIds(teamIds, options, callback) { if (typeof teamIds === 'number') { teamIds = [teamIds]; } if (teamIds.length > 10) { // @todo: Multicall return super._fail(new Error('Maximum allowed summoner IDs at once is 10'), callback); } options = Object.assign({ path: '/api/lol/${region}/v2.5/league/by-team/${teamIds}', params: { teamIds: teamIds.join(',') }, returnType: [String, [LeagueDto]] }, options); return super.request(options).execute(callback); } /** * @callback module:LeagueWrapper/service~LeagueService~getEntriesByTeamIds * @param {?Error} error * @param {Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>} [data] */ /** * @todo example * @param {number[]|number} teamIds * @param {?module:LeagueWrapper/options~RequestOptions} [options] * @param {module:LeagueWrapper/service~LeagueService~getEntriesByTeamIds} [callback] * * @return {Promise.<Object.<Array.<module:LeagueWrapper/dto/league~LeagueDto>>>} */ getEntriesByTeamIds(teamIds, options, callback) { if (typeof teamIds === 'number') { teamIds = [teamIds]; } if (teamIds.length > 10) { // @todo: Multicall return super._fail(new Error('Maximum allowed summoner IDs at once is 10'), callback); } options = Object.assign({ path: '/api/lol/${region}/v2.5/league/by-team/${teamIds}/entry', params: { teamIds: teamIds.join(',') }, returnType: [String, [LeagueDto]] }, options); return super.request(options).execute(callback); } /** * @callback module:LeagueWrapper/service~LeagueService~getChallenger * @param {?Error} error * @param {module:LeagueWrapper/dto/league~LeagueDto} [data] */ /** * @todo example * @param {Object} [query] * @param {QueueType} [query.type=QueueType.RANKED_SOLO_5x5] * @param {?module:LeagueWrapper/options~RequestOptions} [options] * @param {module:LeagueWrapper/service~LeagueService~getChallenger} [callback] * * @return {Promise.<module:LeagueWrapper/dto/league~LeagueDto>} */ getChallenger(query, options, callback) { query = query || {}; query.type = query.type || QueueType.RANKED_SOLO_5x5; query.type = queueTypeHelper.getQueueTypeData(query.type).getQueryString(); options = Object.assign({ path: '/api/lol/${region}/v2.5/league/challenger', query: query, returnType: LeagueDto }, options); return super.request(options).execute(callback); } /** * @callback module:LeagueWrapper/service~LeagueService~getMaster * @param {?Error} error * @param {module:LeagueWrapper/dto/league~LeagueDto} [data] */ /** * @todo example * @param {Object} [query] * @param {QueueType} [query.type=QueueType.RANKED_SOLO_5x5] * @param {?module:LeagueWrapper/options~RequestOptions} [options] * @param {module:LeagueWrapper/service~LeagueService~getMaster} [callback] * * @return {Promise.<module:LeagueWrapper/dto/league~LeagueDto>} */ getMaster(query, options, callback) { query = query || {}; query.type = query.type || QueueType.RANKED_SOLO_5x5; query.type = queueTypeHelper.getQueueTypeData(query.type).getQueryString(); options = Object.assign({ path: '/api/lol/${region}/v2.5/league/master', query: query, returnType: LeagueDto }, options); return super.request(options).execute(callback); } } exports = module.exports = LeagueService;