@jlenon7/zedjs
Version:
Riot API Library for NodeJS
61 lines (59 loc) • 1.79 kB
text/typescript
import { Regions } from '../../../constants'
import { endpointsV4, endpointsV3 } from '../../../endpoints/endpoints'
import { ChampionMasteryDTO } from '../../../models-dto/champion/champion-mastery.dto'
import { ChampionsScoreDTO } from '../../../models-dto/champion/champions-score.dto'
import { BaseApiLol } from '../base/base.api.lol'
/**
* Third party methods
*/
export class ChampionApi extends BaseApiLol {
/**
* Get champion rotation
* @param region Riot region
*/
public async rotation (region: Regions) {
return this.request(region, endpointsV3.ChampionRotation)
}
/**
* Champion mastery by summoner
* @param encryptedSummonerId
* @param region
*/
public async masteryBySummoner (encryptedSummonerId: string, region: Regions) {
const params = {
encryptedSummonerId
}
return this.request<ChampionMasteryDTO[]>(region, endpointsV4.ChampionMasteryBySummoner, params)
}
/**
* Champion mastery by summoner
* @param encryptedSummonerId
* @param region
*/
public async masteryBySummonerChampion (encryptedSummonerId: string, championId: number, region: Regions) {
const params = {
encryptedSummonerId,
championId
}
return this.request<ChampionMasteryDTO>(region, endpointsV4.ChampionMasteryBySummonerChampion, params)
}
/**
* Champions mastery score
* @param encryptedSummonerId
* @param region
*/
public async championsScore (encryptedSummonerId: string, region: Regions): Promise<ChampionsScoreDTO> {
const params = {
encryptedSummonerId
}
let {
response: score
} = await this.request<number | undefined>(region, endpointsV4.ChampionsScore, params)
if (typeof score !== 'number') {
score = 0
}
return {
score
}
}
}