LeagueStats/server/app/Services/Jax/src/Endpoints/LeagueEndpoint.ts

48 lines
1 KiB
TypeScript
Raw Normal View History

// import { RiotRateLimiter } from '@fightmegg/riot-rate-limiter'
import RiotRateLimiter from 'riot-ratelimiter'
import { JaxConfig } from '../../JaxConfig'
import JaxRequest from '../JaxRequest'
2020-10-04 20:05:16 +00:00
export interface LeagueEntryDTO {
leagueId: string
queueType: string
tier: string
rank: string
2025-08-12 20:10:58 +00:00
puuid: string
leaguePoints: number
wins: number
losses: number
veteran: boolean
inactive: boolean
freshBlood: boolean
hotStreak: boolean
2020-10-04 20:05:16 +00:00
miniSeries?: MiniSeriesDTO
}
interface MiniSeriesDTO {
losses: number
progress: string
target: number
2020-10-04 20:05:16 +00:00
wins: number
}
export default class LeagueEndpoint {
private config: JaxConfig
private limiter: RiotRateLimiter
constructor(config: JaxConfig, limiter: RiotRateLimiter) {
this.config = config
this.limiter = limiter
}
2025-08-12 20:10:58 +00:00
public puuid(puuid: string, region: string): Promise<LeagueEntryDTO[]> {
return new JaxRequest(
region,
this.config,
2025-08-12 20:10:58 +00:00
`league/v4/entries/by-puuid/${puuid}`,
this.limiter,
300
).execute()
}
}