pyke
Version:
Librairie RIOTAPI for NodeJS
169 lines (161 loc) • 6.16 kB
JavaScript
const endpoints = require('../../endpoint');
const got = require('got');
var api_url = ".api.riotgames.com";
module.exports = class League{
constructor(api_key, LRU) {
this.api_key = api_key;
this.LRU = LRU;
}
/**
*
* @param {String} regionId Region
* @param {String} queue RANKED_SOLO_5x5 / RANKED_FLEX_SR / RANKED_FLEX_TT
*/
async getChallengerLeague (regionId, queue){
return new Promise ((resolve, reject) =>{
got.get(`https://${regionId + api_url + endpoints.league.challengerleagues + queue + '?api_key=' + this.api_key}`, {
json: true, cache: this.LRU
})
.then(data =>{
resolve(data.body);
})
.catch(error => {
reject({
statuscode: error.statusCode,
message: error.statusMessage
});
})
})
}
/**
*
* @param {String} regionId Region
* @param {String} leagueId
*/
async getLeagueById (regionId, leagueId){
return new Promise((resolve, reject) =>{
got.get(`https://${regionId + api_url + endpoints.league.leagues + leagueId + '?api_key=' + this.api_key}`, {
json: true
})
.then(data => {
resolve(data);
})
.catch(error => {
reject({
statuscode: error.statusCode,
message: error.statusMessage
});
})
})
}
/**
*
* @param {String} regionId Region
* @param {String} queue RANKED_SOLO_5x5 / RANKED_FLEX_SR / RANKED_FLEX_TT
*/
async getMasterLeague (regionId, queue) {
return new Promise ((resolve, reject) =>{
got.get(`https://${regionId + api_url + endpoints.league.masterleagues + queue + '?api_key=' + this.api_key}`, {
json: true, cache: this.LRU
})
.then(data =>{
resolve(data.body);
})
.catch(error => {
reject({
statuscode: error.statusCode,
message: error.statusMessage
});
})
})
}
/**
*
* @param {String} summonerId Id du summoner
* @param {String} regionId Region
* @returns {Promise<{all: JSON, RANKED_SOLO_5x5: JSON, RANKED_FLEX_SR: JSON, RANKED_FLEX_TT: JSON}>}
*/
async getAllLeaguePositionsForSummoner(summonerId, regionId) {
return new Promise((resolve, reject) => {
got.get(`https://${regionId + api_url + endpoints.league.bysummonerId + summonerId + '?api_key=' + this.api_key}`, {
json: true, cache: this.LRU
}).then(data => {
var arr = new Array(data.body.length);
arr = data.body;
var RANKED_SOLO_5x5 = arr.find(value => value.queueType == 'RANKED_SOLO_5x5');
var RANKED_FLEX_SR = arr.find(value => value.queueType == "RANKED_FLEX_SR");
var RANKED_FLEX_TT = arr.find(value => value.queueType == "RANKED_FLEX_TT");
if (!RANKED_SOLO_5x5) {
RANKED_SOLO_5x5 = {
leagueId: '',
leagueName: '',
tier: 'Unranked',
queueType: 'RANKED_SOLO_5x5',
rank: '',
playerOrTeamId: summonerId,
playerOrTeamName: '',
leaguePoints: '',
wins: '',
losses: '',
veteran: true,
inactive: false,
freshBlood: false,
hotStreak: false
};
}
if (!RANKED_FLEX_SR) {
RANKED_FLEX_SR = {
leagueId: '',
leagueName: '',
tier: 'Unranked',
queueType: 'RANKED_FLEX_SR',
rank: '',
playerOrTeamId: summonerId,
playerOrTeamName: '',
leaguePoints: '',
wins: '',
losses: '',
veteran: true,
inactive: false,
freshBlood: false,
hotStreak: false
};
}
if (!RANKED_FLEX_TT) {
RANKED_FLEX_TT = {
leagueId: '',
leagueName: '',
tier: 'Unranked',
queueType: 'RANKED_FLEX_TT',
rank: '',
playerOrTeamId: summonerId,
playerOrTeamName: '',
leaguePoints: '',
wins: '',
losses: '',
veteran: true,
inactive: false,
freshBlood: false,
hotStreak: false
};
}
resolve({
all: {
RANKED_SOLO_5x5: RANKED_SOLO_5x5,
RANKED_FLEX_SR: RANKED_FLEX_SR,
RANKED_FLEX_TT: RANKED_FLEX_TT
},
RANKED_SOLO_5x5: RANKED_SOLO_5x5,
RANKED_FLEX_SR: RANKED_FLEX_SR,
RANKED_FLEX_TT: RANKED_FLEX_TT
});
}).catch(error => {
console.log(error)
reject({
statuscode: error.statusCode,
message: error.statusMessage
});
})
})
}
}