mirror of
https://github.com/vkaelin/LeagueStats.git
synced 2026-03-25 12:57:28 +00:00
feat: add type to Jax Match Endpoint
This commit is contained in:
parent
b565a0bc55
commit
7d74309d1b
1 changed files with 208 additions and 1 deletions
|
|
@ -2,6 +2,213 @@ import { RiotRateLimiter } from '@fightmegg/riot-rate-limiter'
|
||||||
import { JaxConfig } from '../../JaxConfig'
|
import { JaxConfig } from '../../JaxConfig'
|
||||||
import JaxRequest from '../JaxRequest'
|
import JaxRequest from '../JaxRequest'
|
||||||
|
|
||||||
|
export interface MatchDto {
|
||||||
|
gameId: number,
|
||||||
|
participantIdentities: ParticipantIdentityDto[],
|
||||||
|
queueId: number,
|
||||||
|
gameType: string,
|
||||||
|
gameDuration: number,
|
||||||
|
teams: TeamStatsDto[],
|
||||||
|
platformId: string
|
||||||
|
gameCreation: number,
|
||||||
|
seasonId: number,
|
||||||
|
gameVersion: string,
|
||||||
|
mapId: number,
|
||||||
|
gameMode: string,
|
||||||
|
participants: ParticipantDto[],
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ParticipantIdentityDto {
|
||||||
|
participantId: number,
|
||||||
|
player: PlayerDto
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PlayerDto {
|
||||||
|
profileIcon: number,
|
||||||
|
accountId: string,
|
||||||
|
matchHistoryUri: string,
|
||||||
|
currentAccountId: string,
|
||||||
|
currentPlatformId: string,
|
||||||
|
summonerName: string,
|
||||||
|
summonerId: string,
|
||||||
|
platformId: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TeamStatsDto {
|
||||||
|
towerKills: number,
|
||||||
|
riftHeraldKills: number,
|
||||||
|
firstBlood: boolean,
|
||||||
|
inhibitorKills: number,
|
||||||
|
bans: TeamBansDto[],
|
||||||
|
firstBaron: boolean,
|
||||||
|
firstDragon: boolean,
|
||||||
|
dominionVictoryScore: number,
|
||||||
|
dragonKills: number,
|
||||||
|
baronKills: number,
|
||||||
|
firstInhibitor: boolean
|
||||||
|
firstTower: boolean
|
||||||
|
vilemawKills: number,
|
||||||
|
firstRiftHerald: boolean
|
||||||
|
teamId: number, // 100 for blue side. 200 for red side.
|
||||||
|
win: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TeamBansDto {
|
||||||
|
championId: number,
|
||||||
|
pickTurn: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ParticipantDto {
|
||||||
|
participantId: number,
|
||||||
|
championId: number,
|
||||||
|
runes: RuneDto[],
|
||||||
|
stats: ParticipantStatsDto,
|
||||||
|
teamId: number,
|
||||||
|
timeline: ParticipantTimelineDto,
|
||||||
|
spell1Id: number,
|
||||||
|
spell2Id: number,
|
||||||
|
highestAchievedSeasonTier?:
|
||||||
|
'CHALLENGER' | 'MASTER' | 'DIAMOND' | 'PLATINUM' | 'GOLD' | 'SILVER' | 'BRONZE' | 'UNRANKED',
|
||||||
|
masteries: MasteryDto[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RuneDto {
|
||||||
|
runeId: number,
|
||||||
|
rank: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ParticipantStatsDto {
|
||||||
|
item0: number,
|
||||||
|
item2: number,
|
||||||
|
totalUnitsHealed: number,
|
||||||
|
item1: number,
|
||||||
|
largestMultiKill: number,
|
||||||
|
goldEarned: number,
|
||||||
|
firstInhibitorKill: boolean,
|
||||||
|
physicalDamageTaken: number,
|
||||||
|
nodeNeutralizeAssist: number,
|
||||||
|
totalPlayerScore: number,
|
||||||
|
champLevel: number,
|
||||||
|
damageDealtToObjectives: number,
|
||||||
|
totalDamageTaken: number,
|
||||||
|
neutralMinionsKilled: number,
|
||||||
|
deaths: number,
|
||||||
|
tripleKills: number,
|
||||||
|
magicDamageDealtToChampions: number,
|
||||||
|
wardsKilled: number,
|
||||||
|
pentaKills: number,
|
||||||
|
damageSelfMitigated: number,
|
||||||
|
largestCriticalStrike: number,
|
||||||
|
nodeNeutralize: number,
|
||||||
|
totalTimeCrowdControlDealt: number,
|
||||||
|
firstTowerKill: boolean
|
||||||
|
magicDamageDealt: number,
|
||||||
|
totalScoreRank: number,
|
||||||
|
nodeCapture: number,
|
||||||
|
wardsPlaced: number,
|
||||||
|
totalDamageDealt: number,
|
||||||
|
timeCCingOthers: number,
|
||||||
|
magicalDamageTaken: number,
|
||||||
|
largestKillingSpree: number,
|
||||||
|
totalDamageDealtToChampions: number,
|
||||||
|
physicalDamageDealtToChampions: number,
|
||||||
|
neutralMinionsKilledTeamJungle: number,
|
||||||
|
totalMinionsKilled: number,
|
||||||
|
firstInhibitorAssist: boolean
|
||||||
|
visionWardsBoughtInGame: number,
|
||||||
|
objectivePlayerScore: number,
|
||||||
|
kills: number,
|
||||||
|
firstTowerAssist: boolean
|
||||||
|
combatPlayerScore: number,
|
||||||
|
inhibitorKills: number,
|
||||||
|
turretKills: number,
|
||||||
|
participantId: number,
|
||||||
|
trueDamageTaken: number,
|
||||||
|
firstBloodAssist: boolean
|
||||||
|
nodeCaptureAssist: number,
|
||||||
|
assists: number,
|
||||||
|
teamObjective: number,
|
||||||
|
altarsNeutralized: number,
|
||||||
|
goldSpent: number,
|
||||||
|
damageDealtToTurrets: number,
|
||||||
|
altarsCaptured: number,
|
||||||
|
win: boolean,
|
||||||
|
totalHeal: number,
|
||||||
|
unrealKills: number,
|
||||||
|
visionScore: number,
|
||||||
|
physicalDamageDealt: number,
|
||||||
|
firstBloodKill: boolean,
|
||||||
|
longestTimeSpentLiving: number,
|
||||||
|
killingSprees: number,
|
||||||
|
sightWardsBoughtInGame: number,
|
||||||
|
trueDamageDealtToChampions: number,
|
||||||
|
neutralMinionsKilledEnemyJungle: number,
|
||||||
|
doubleKills: number,
|
||||||
|
trueDamageDealt: number,
|
||||||
|
quadraKills: number,
|
||||||
|
item4: number,
|
||||||
|
item3: number,
|
||||||
|
item6: number,
|
||||||
|
item5: number,
|
||||||
|
playerScore0: number,
|
||||||
|
playerScore1: number,
|
||||||
|
playerScore2: number,
|
||||||
|
playerScore3: number,
|
||||||
|
playerScore4: number,
|
||||||
|
playerScore5: number,
|
||||||
|
playerScore6: number,
|
||||||
|
playerScore7: number,
|
||||||
|
playerScore8: number,
|
||||||
|
playerScore9: number,
|
||||||
|
perk0: number,
|
||||||
|
perk0Var1: number,
|
||||||
|
perk0Var2: number,
|
||||||
|
perk0Var3: number,
|
||||||
|
perk1: number,
|
||||||
|
perk1Var1: number,
|
||||||
|
perk1Var2: number,
|
||||||
|
perk1Var3: number,
|
||||||
|
perk2: number,
|
||||||
|
perk2Var1: number,
|
||||||
|
perk2Var2: number,
|
||||||
|
perk2Var3: number,
|
||||||
|
perk3: number,
|
||||||
|
perk3Var1: number,
|
||||||
|
perk3Var2: number,
|
||||||
|
perk3Var3: number,
|
||||||
|
perk4: number,
|
||||||
|
perk4Var1: number,
|
||||||
|
perk4Var2: number,
|
||||||
|
perk4Var3: number,
|
||||||
|
perk5: number,
|
||||||
|
perk5Var1: number,
|
||||||
|
perk5Var2: number,
|
||||||
|
perk5Var3: number,
|
||||||
|
perkPrimaryStyle: number,
|
||||||
|
perkSubStyle: number,
|
||||||
|
statPerk0: number,
|
||||||
|
statPerk1: number,
|
||||||
|
statPerk2: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ParticipantTimelineDto {
|
||||||
|
participantId: number,
|
||||||
|
csDiffPerMinDeltas: { [index: string]: number },
|
||||||
|
damageTakenPerMinDeltas: { [index: string]: number },
|
||||||
|
role: 'DUO' | 'NONE' | 'SOLO' | 'DUO_CARRY' | 'DUO_SUPPORT',
|
||||||
|
damageTakenDiffPerMinDeltas: { [index: string]: number },
|
||||||
|
xpPerMinDeltas: { [index: string]: number },
|
||||||
|
xpDiffPerMinDeltas: { [index: string]: number },
|
||||||
|
lane: 'MID' | 'MIDDLE' | 'TOP' | 'JUNGLE' | 'BOT' | 'BOTTOM',
|
||||||
|
creepsPerMinDeltas: { [index: string]: number },
|
||||||
|
goldPerMinDeltas: { [index: string]: number },
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MasteryDto {
|
||||||
|
rank: number,
|
||||||
|
masteryId: number,
|
||||||
|
}
|
||||||
|
|
||||||
export default class MatchEndpoint {
|
export default class MatchEndpoint {
|
||||||
private config: JaxConfig
|
private config: JaxConfig
|
||||||
private limiter: RiotRateLimiter
|
private limiter: RiotRateLimiter
|
||||||
|
|
@ -13,7 +220,7 @@ export default class MatchEndpoint {
|
||||||
this.get = this.get.bind(this)
|
this.get = this.get.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
public get (matchID: number, region: string) {
|
public get (matchID: number, region: string): Promise<MatchDto> {
|
||||||
return new JaxRequest(
|
return new JaxRequest(
|
||||||
region,
|
region,
|
||||||
this.config,
|
this.config,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue