leagueapi
Version:
Wrapper for the League of Legends API
745 lines (622 loc) • 32.1 kB
JavaScript
/*global require*/
/*global module*/
/*global console*/
/*jslint nomen: true*/
(function () {
'use strict';
var League = {},
util = require('./util'),
authKey,
region = 'na',
endpoint = 'api.pvp.net/api/lol',
statusEndpoint = 'status.leagueoflegends.com',
tournamentEndpoint = 'api.pvp.net/tournament/public/v1',
championMasteryEndpoint = 'api.pvp.net/championmastery',
championUrl = '/v1.2/champion',
gameUrl = '/v1.3/game/by-summoner',
leagueUrl = {
summoner: '/v2.5/league/by-summoner',
team: '/v2.5/league/by-team'
},
statsUrl = '/v1.3/stats/by-summoner',
summonerUrl = '/v1.4/summoner',
matchUrl = '/v2.2/match',
matchHistoryUrl = '/v2.2/matchlist/by-summoner',
observerUrl = 'api.pvp.net/observer-mode/rest',
teamUrl = '/v2.4/team/',
staticUrl = '/static-data';
League.Stats = {};
League.Summoner = {};
League.Static = {};
League.Tournament = {};
League.ChampionMastery = {};
League.init = function (key, regionTag) {
authKey = key;
if (regionTag) {
region = regionTag;
}
};
League.getRegions = function (callback) {
var regions = {
'na': 'North America',
'euw': 'Europe West',
'eune': 'Europe Nordic and East'
};
return util.makeStaticRequest(error, regions);
};
League.getPlatformId = function (region, callback) {
var platforms = {
'na': 'NA1',
'euw': 'EUW1',
'eune': 'EUN1',
'lan': 'LA1',
'las': 'LA2',
'oce': 'OC1',
'tr': 'TR1',
'ru': 'RU',
'br': 'BR1',
'kr': 'KR',
'jp': 'JP1'
},
platformId,
error;
platformId = platforms[region];
error = platformId ? null : 'Invalid region';
return util.makeStaticRequest(error, platformId);
};
League.getQueues = function (callback) {
var queues = {
2: 'Normal 5v5 Blind Pick',
4: 'Ranked Solo 5v5',
7: 'Coop vs AI 5v5',
8: 'Normal 3v3',
14: 'Normal 5v5 Draft Pick',
16: 'Dominion 5v5 Blind Pick',
17: 'Dominion 5v5 Draft Pick',
25: 'Dominion Coop vs AI',
41: 'Ranked Team 3v3',
42: 'Ranked Team 5v5',
52: 'Twisted Treeline Coop vs AI',
65: 'ARAM',
67: 'ARAM Coop vs AI'
};
return util.makeStaticRequest(null, queues);
};
League.getMapNames = function (callback) {
var maps ={
1: 'Summoner\'s Rift Summer Variant ',
2: 'Summoner\'s Rift Autumn Variant',
3: 'The Proving Grounds',
4: 'Twisted Treeline Original Version',
8: 'The Crystal Scar',
10: 'Twisted Treeline Current Version',
12: 'Howling Abyss'
};
return util.makeStaticRequest(null, maps);
};
League.getShards = function(callback) {
var shards = '/shards',
url = util.craftStatusUrl(statusEndpoint, shards, '');
return util.makeRequest(url, 'Error getting shards: ', null, callback);
};
League.getShardByRegion = function(regionOrFunction, callback) {
var shards = '/shards',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftStatusUrl(statusEndpoint, shards, '/' + regionAndFunc.region);
return util.makeRequest(url, 'Error getting shards by region ', null, callback);
};
League.getMatch = function(matchId, includeTimelineOrFunction, regionOrFunction, callback) {
var url,
regionAndFunc;
if (typeof(includeTimelineOrFunction) === 'function'){
regionAndFunc = util.getCallbackAndRegion(includeTimelineOrFunction, region, callback);
} else {
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback);
}
if (includeTimelineOrFunction) {
includeTimelineOrFunction = 'includeTimeline=true&';
} else {
includeTimelineOrFunction = '';
}
url = util.craftUrl(endpoint, regionAndFunc.region, matchUrl + '/' +
matchId + '?' + includeTimelineOrFunction, authKey);
return util.makeRequest(url, 'Error getting match: ', null, regionAndFunc.callback);
};
League.getMatchForTournament = function(matchId, tournamentCode, includeTimelineOrFunction, regionOrFunction, callback) {
var url,
regionAndFunc;
if (typeof(includeTimelineOrFunction) === 'function'){
regionAndFunc = util.getCallbackAndRegion(includeTimelineOrFunction, region, callback);
} else {
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback);
}
if (includeTimelineOrFunction) {
includeTimelineOrFunction = 'includeTimeline=true&';
} else {
includeTimelineOrFunction = '';
}
url = util.craftUrl(endpoint, regionAndFunc.region, matchUrl + '/for-tournament/' +
matchId + '?' + includeTimelineOrFunction + 'tournamentCode=' + tournamentCode + '&', authKey);
return util.makeRequest(url, 'Error getting tournament match: ', null, regionAndFunc.callback);
};
League.getMatchIdsByTournament = function(tournamentCode, regionOrFunction, callback) {
var url,
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback);
url = util.craftUrl(endpoint, regionAndFunc.region, matchUrl + '/by-tournament/' +
tournamentCode + '/ids?', authKey);
return util.makeRequest(url, 'Error getting tournament match ids: ', null, regionAndFunc.callback);
};
League.getMatchHistory = function(summonerId, options, regionOrFunction, callback) {
var url,
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
historyOptions = '';
if(options) {
if (options.championIds) {
historyOptions += '&championIds=' + options.championIds.join();
}
if (options.rankedQueues) {
historyOptions += '&rankedQueues=' + options.rankedQueues.join();
}
if (options.beginIndex) {
historyOptions += '&beginIndex=' + options.beginIndex;
}
if (options.endIndex) {
historyOptions += '&endIndex=' + options.endIndex;
}
if (options.beginTime) {
historyOptions += '&beginTime=' + options.beginTime;
}
if (options.endTime) {
historyOptions += '&endTime=' + options.endTime;
}
historyOptions += '&';
historyOptions = historyOptions.substr(1);
}
url = util.craftUrl(endpoint, regionAndFunc.region, matchHistoryUrl + '/' +
summonerId + '?' + historyOptions, authKey);
return util.makeRequest(url, 'Error getting match history: ', null, regionAndFunc.callback);
};
League.getCurrentGame = function(summonerId, regionOrFunction, callback) {
var currentGameUrl = '/consumer/getSpectatorGameInfo',
url,
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
platformId;
return League.getPlatformId(regionAndFunc.region)
.then(function(platformId) {
url = util.craftObserverUrl(observerUrl, regionAndFunc.region, currentGameUrl + '/' +
platformId + '/' + summonerId + '?', authKey);
return util.makeRequest(url, 'Error getting current game: ', null, regionAndFunc.callback);
})
};
League.getFeaturedGames = function(regionOrFunction, callback) {
var featuredUrl = '/featured',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftObserverUrl(observerUrl, regionAndFunc.region, featuredUrl + '?', authKey);
return util.makeRequest(url, 'Error getting current game: ', null, regionAndFunc.callback);
};
League.getChampions = function (freeToPlay, regionOrFunction, callback) {
var url,
freetoPlayQuery = '',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback);
if (freeToPlay === null || typeof (freeToPlay) !== 'boolean') {
console.log('Invalid query parameter for freeToPlay: ' + freeToPlay);
}
if (freeToPlay) {
freetoPlayQuery = 'freeToPlay=true&';
}
url = util.craftUrl(endpoint, regionAndFunc.region, championUrl + '?' + freetoPlayQuery, authKey);
return util.makeRequest(url, 'Error getting champions: ', 'champions', regionAndFunc.callback);
};
League.getRecentGames = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, gameUrl + '/' + summonerId + '/recent?', authKey);
return util.makeRequest(url, 'Error getting recent games: ', 'games', regionAndFunc.callback);
};
League.getLeagueData = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, leagueUrl.summoner + '/' + summonerId + '?', authKey);
return util.makeRequest(url, 'Error getting league data: ', null, regionAndFunc.callback);
};
League.getTeamLeagueData = function(teamId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, leagueUrl.team + '/' + teamId + '?', authKey);
return util.makeRequest(url, 'Error getting league data: ', null, regionAndFunc.callback);
};
League.getLeagueEntryData = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, leagueUrl.summoner + '/' + summonerId + '/entry?', authKey);
return util.makeRequest(url, 'Error getting league data: ', null, regionAndFunc.callback);
};
League.getTeamLeagueEntryData = function (teamId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, leagueUrl.team + '/' + teamId + '/entry?', authKey);
return util.makeRequest(url, 'Error getting league data: ', null, regionAndFunc.callback);
};
League.Stats.getPlayerSummary = function (summonerId, season, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
seasonURL = '',
url;
if (util.getValidSeasonParam(season)) {
if (season) {
seasonURL = 'season=SEASON' + season + '&';
}
} else {
console.log('Invalid query parameter for season: ' + season);
}
url = util.craftUrl(endpoint, regionAndFunc.region,
statsUrl + '/' + summonerId + '/summary?' + seasonURL, authKey);
return util.makeRequest(url, 'Error getting summary data: ', 'playerStatSummaries', regionAndFunc.callback);
};
League.Stats.getRanked = function (summonerId, season, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
seasonURL = '',
url;
if (util.getValidSeasonParam(season)) {
if (season) {
seasonURL = 'season=SEASON' + season + '&';
}
} else {
console.log('Invalid query parameter for season: ' + season);
}
url = util.craftUrl(endpoint, regionAndFunc.region,
statsUrl + '/' + summonerId + '/ranked?' + seasonURL, authKey);
return util.makeRequest(url, 'Error getting ranked data: ', 'champions', regionAndFunc.callback);
};
League.Summoner.getMasteries = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction,
region,
callback),
url = util.craftUrl(endpoint, regionAndFunc.region,
summonerUrl + '/' + summonerId + '/masteries?', authKey);
return util.makeRequest(url, 'Error getting mastery data: ', null, regionAndFunc.callback);
};
League.Summoner.getRunes = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, summonerUrl + '/' + summonerId + '/runes?', authKey);
return util.makeRequest(url, 'Error getting rune data: ', null, regionAndFunc.callback);
};
League.Summoner.getByName = function (name, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
name = encodeURIComponent(name.split(' ').join(''));
url = util.craftUrl(endpoint, regionAndFunc.region, summonerUrl + '/by-name/' + name + '?', authKey);
return util.makeRequest(url, 'Error getting summoner data using name: ', null, regionAndFunc.callback);
};
League.Summoner.getByID = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, summonerUrl + '/' + summonerId + '?', authKey);
return util.makeRequest(url, 'Error getting summoner data: ', null, regionAndFunc.callback);
};
League.Summoner.listNamesByIDs = function (ids, regionOrFunction, callback) {
if(Array.isArray(ids)){
ids = ids.join();
}
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, summonerUrl + '/' + ids + '/name?', authKey);
return util.makeRequest(url, 'Error getting summoner names using list of ids: ', null, regionAndFunc.callback);
};
League.Summoner.listSummonerDataByIDs = function (ids, regionOrFunction, callback) {
if(Array.isArray(ids)){
ids = ids.join();
}
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, summonerUrl + '/' + ids + '?', authKey);
return util.makeRequest(url, 'Error getting summoner data using list of ids: ', null, regionAndFunc.callback);
};
League.getTeams = function (summonerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, teamUrl + 'by-summoner/' + summonerId + '?', authKey);
return util.makeRequest(url, 'Error getting summoner teams info: ', null, regionAndFunc.callback);
};
League.getTeam = function (teamId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftUrl(endpoint, regionAndFunc.region, teamUrl + teamId + '?', authKey);
return util.makeRequest(url, 'Error gettin Team info: ', null, regionAndFunc.callback);
};
League.setRateLimit = function (limitPer10s, limitPer10min) {
util.setRateLimit(limitPer10s, limitPer10min);
};
League.setEndpoint = function (newEndpoint) {
endpoint = newEndpoint;
};
League.setSummonerUrl = function (newPath) {
summonerUrl = newPath;
};
League.getSummonerUrl = function (newPath) {
return summonerUrl;
};
League.getEndpoint = function () {
return endpoint;
};
League.Static.getChampionList = function(options, regionOrFunction, callback) {
var championListUrl = '/v1.2/champion?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if(options) {
if (options.champData) {
var champData = [].concat(options.champData);
championListUrl += '&champData=' + champData.join();
}
if (options.dataById) {
championListUrl += '&dataById=true';
}
if (options.version) {
championListUrl += '&version=' + options.version;
}
if (options.locale) {
championListUrl += '&locale=' + options.locale;
}
championListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, championListUrl, authKey);
return util.makeRequest(url, 'Error getting static champion list: ', null, regionAndFunc.callback);
};
League.Static.getChampionById = function(id, options, regionOrFunction, callback) {
var championListUrl = '/v1.2/champion/' + id + '?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if(options) {
if (options.champData) {
var champData = [].concat(options.champData);
championListUrl += '&champData=' + champData.join();
}
if (options.version) {
championListUrl += '&version=' + options.version;
}
if (options.locale) {
championListUrl += '&locale=' + options.locale;
}
championListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, championListUrl, authKey);
return util.makeRequest(url, 'Error getting static champion by id: ', null, regionAndFunc.callback);
};
League.Static.getItemList = function(options, regionOrFunction, callback) {
var itemListUrl = '/v1.2/item?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.itemListData) {
itemListUrl += '&itemListData=' + options.itemListData;
}
if (options.version) {
itemListUrl += '&version=' + options.version;
}
if (options.locale) {
itemListUrl += '&locale=' + options.locale;
}
itemListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, itemListUrl, authKey);
return util.makeRequest(url, 'Error getting static item list: ', null, regionAndFunc.callback);
};
League.Static.getItemById = function(id, options, regionOrFunction, callback) {
var itemListUrl = '/v1.2/item/' + id + '?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.itemData) {
itemListUrl += '&itemData=' + options.itemData;
}
if (options.version) {
itemListUrl += '&version=' + options.version;
}
if (options.locale) {
itemListUrl += '&locale=' + options.locale;
}
itemListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, itemListUrl, authKey);
return util.makeRequest(url, 'Error getting static item by id: ', null, regionAndFunc.callback);
};
League.Static.getMasteryList = function(options, regionOrFunction, callback) {
var masteryListUrl = '/v1.2/mastery?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.masteryListData) {
masteryListUrl += '&masteryListData=' + options.masteryListData;
}
if (options.version) {
masteryListUrl += '&version=' + options.version;
}
if (options.locale) {
masteryListUrl += '&locale=' + options.locale;
}
masteryListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, masteryListUrl, authKey);
return util.makeRequest(url, 'Error getting mastery list : ', null, regionAndFunc.callback);
};
League.Static.getMasteryById = function(id, options, regionOrFunction, callback) {
var masteryIdUrl = '/v1.2/mastery/' + id + '?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.masteryData) {
masteryIdUrl += '&masteryData=' + options.masteryData;
}
if (options.version) {
masteryIdUrl += '&version=' + options.version;
}
if (options.locale) {
masteryIdUrl += '&locale=' + options.locale;
}
masteryIdUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, masteryIdUrl, authKey);
return util.makeRequest(url, 'Error getting mastery by id: ', null, regionAndFunc.callback);
};
League.Static.getRealm = function(regionOrFunction, callback) {
var realmUrl = '/v1.2/realm?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, realmUrl, authKey);
return util.makeRequest(url, 'Error getting realm: ', null, regionAndFunc.callback);
};
League.Static.getRuneList = function(options, regionOrFunction, callback) {
var runeListUrl = '/v1.2/rune?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.runeListData) {
runeListUrl += '&runeListData=' + options.runeListData;
}
if (options.version) {
runeListUrl += '&version=' + options.version;
}
if (options.locale) {
runeListUrl += '&locale=' + options.locale;
}
runeListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, runeListUrl, authKey);
return util.makeRequest(url, 'Error getting rune list : ', null, regionAndFunc.callback);
};
League.Static.getRuneById= function(id, options, regionOrFunction, callback) {
var runeListUrl = '/v1.2/rune/' + id + '?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.runeData) {
runeListUrl += '&runeData=' + options.runeData;
}
if (options.version) {
runeListUrl += '&version=' + options.version;
}
if (options.locale) {
runeListUrl += '&locale=' + options.locale;
}
runeListUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, runeListUrl, authKey);
return util.makeRequest(url, 'Error getting rune by id : ', null, regionAndFunc.callback);
};
League.Static.getSummonerSpellList = function(options, regionOrFunction, callback) {
var summonerSpellUrl = '/v1.2/summoner-spell?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.spellData) {
summonerSpellUrl += '&spellData=' + options.spellData;
}
if (options.version) {
summonerSpellUrl += '&version=' + options.version;
}
if (options.locale) {
summonerSpellUrl += '&locale=' + options.locale;
}
if (options.dataById) {
summonerSpellUrl += '&dataById=' + options.dataById;
}
summonerSpellUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, summonerSpellUrl, authKey);
return util.makeRequest(url, 'Error getting summoner spell list : ', null, regionAndFunc.callback);
};
League.Static.getSummonerSpellById = function(id, options, regionOrFunction, callback) {
var summonerSpellUrl = '/v1.2/summoner-spell/' + id + '?',
regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url;
if (options) {
if (options.spellData) {
summonerSpellUrl += '&spellData=' + options.spellData;
}
if (options.version) {
summonerSpellUrl += '&version=' + options.version;
}
if (options.locale) {
summonerSpellUrl += '&locale=' + options.locale;
}
if (options.dataById) {
summonerSpellUrl += '&dataById=' + options.dataById;
}
summonerSpellUrl += '&';
}
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, summonerSpellUrl, authKey);
return util.makeRequest(url, 'Error getting summoner spell by id : ', null, regionAndFunc.callback);
};
League.Static.getVersions = function(regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback),
url = util.craftStaticUrl(endpoint + staticUrl, regionAndFunc.region, '/v1.2/versions?', authKey);
return util.makeRequest(url, 'Error getting versions: ', null, regionAndFunc.callback);
};
League.Tournament.createProvider = function(region, callbackUrl, callback) {
var url = util.craftTournamentUrl(tournamentEndpoint, 'provider?', authKey);
return util.makeCustomRequest(url, 'POST', {
region: region,
url: callbackUrl
}, 'Error creating tournament provider: ', null, callback);
};
League.Tournament.createTournament = function(name, providerId, callback) {
var url = util.craftTournamentUrl(tournamentEndpoint, 'tournament?', authKey);
return util.makeCustomRequest(url, 'POST', {
name: name,
providerId: providerId
}, 'Error creating tournament: ', null, callback);
};
League.Tournament.createCode = function(tournamentId, count, options, callback) {
var url = util.craftTournamentUrl(tournamentEndpoint, 'code?tournamentId=' + tournamentId +
'&count=' + count + '&', authKey);
var bodyData = {};
if (typeof options.teamSize != 'undefined') bodyData.teamSize = options.teamSize;
if (typeof options.allowedSummonerIds != 'undefined')
bodyData.allowedSummonerIds = {participants: options.allowedSummonerIds};
if (typeof options.spectatorType != 'undefined') bodyData.spectatorType = options.spectatorType;
if (typeof options.pickType != 'undefined') bodyData.pickType = options.pickType;
if (typeof options.mapType != 'undefined') bodyData.mapType = options.mapType;
if (typeof options.metadata != 'undefined') bodyData.metadata = options.metadata;
return util.makeCustomRequest(url, 'POST', bodyData, 'Error creating tournament code: ', null, callback);
};
League.Tournament.updateCode = function(tournamentCode, options, callback) {
var url = util.craftTournamentUrl(tournamentEndpoint, 'code/' + tournamentCode + '?', authKey);
var bodyData = {};
if (typeof options.allowedParticipants != 'undefined')
bodyData.allowedParticipants = options.allowedParticipants.join(',');
if (typeof options.spectatorType != 'undefined') bodyData.spectatorType = options.spectatorType;
if (typeof options.pickType != 'undefined') bodyData.pickType = options.pickType;
if (typeof options.mapType != 'undefined') bodyData.mapType = options.mapType;
return util.makeCustomRequest(url, 'PUT', bodyData, 'Error updating tournament code: ', null, callback);
};
League.Tournament.getCode = function(tournamentCode, callback) {
var url = util.craftTournamentUrl(tournamentEndpoint, 'code/' + tournamentCode + '?', authKey);
return util.makeRequest(url, 'Error getting tournament code: ', null, callback);
};
League.Tournament.getLobbyEventsByCode = function(tournamentCode, callback) {
var url = util.craftTournamentUrl(tournamentEndpoint, 'lobby/events/by-code/' + tournamentCode + '?', authKey);
return util.makeRequest(url, 'Error getting lobby events: ', null, callback);
};
League.ChampionMastery.getChampions = function(playerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback)
return League.getPlatformId(regionAndFunc.region)
.then(function(platformId) {
var url = util.craftChampionMasteryUrl(championMasteryEndpoint, regionAndFunc.region, platformId, '/player/' + playerId + '/champions?', authKey);
return util.makeRequest(url, 'Error getting champion mastery champions: ', null, regionAndFunc.callback);
});
};
League.ChampionMastery.getChampion = function(playerId, championId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback)
return League.getPlatformId(regionAndFunc.region)
.then(function(platformId) {
var url = util.craftChampionMasteryUrl(championMasteryEndpoint, regionAndFunc.region, platformId, '/player/' + playerId + '/champion/' + championId + '?', authKey);
return util.makeRequest(url, 'Error getting champion mastery champions: ', null, regionAndFunc.callback);
});
};
League.ChampionMastery.getScore = function(playerId, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback)
return League.getPlatformId(regionAndFunc.region)
.then(function(platformId) {
var url = util.craftChampionMasteryUrl(championMasteryEndpoint, regionAndFunc.region, platformId, '/player/' + playerId + '/score?', authKey);
return util.makeRequest(url, 'Error getting champion mastery champions: ', null, regionAndFunc.callback);
});
};
League.ChampionMastery.getTopChampions = function(playerId, count, regionOrFunction, callback) {
var regionAndFunc = util.getCallbackAndRegion(regionOrFunction, region, callback);
var countParameter = count ? 'count=' + count + '&' : '';
return League.getPlatformId(regionAndFunc.region)
.then(function(platformId) {
var url = util.craftChampionMasteryUrl(championMasteryEndpoint, regionAndFunc.region, platformId, '/player/' + playerId + '/topchampions?' + countParameter, authKey);
return util.makeRequest(url, 'Error getting champion mastery champions: ', null, regionAndFunc.callback);
});
};
module.exports = League;
}());