import MatchSuperclass from './MatchSuperclass'
import Request from 'RequestClient/Request'
import METHOD_NAMES from 'Enums/method-names'
class MatchEndpoint extends MatchSuperclass {
constructor(config, limiter) {
super()
this.config = config
this.get = this.get.bind(this)
this.timeline = this.timeline.bind(this)
this.Tournament = {
listMatchIDs: this.listMatchIDs.bind(this),
get: this.getTournamentMatch.bind(this),
}
this.limiter = limiter
}
/**
* Get match by match ID.
*
* Implements GET `/lol/match/v3/matches/{matchId}`.
*
* @param {number} matchID - The ID of the match.
*/
get(matchID) {
return new Request(
this.config,
this.serviceName,
`matches/${matchID}`,
METHOD_NAMES.MATCH.GET_MATCH,
'GET',
this.limiter,
)
}
/**
* Get match timeline by match ID.
*
* Implements GET `/lol/match/v3/timelines/by-match/{matchId}`.
*
* @param {number} matchID - The ID of the match.
*/
timeline(matchID) {
return new Request(
this.config,
this.serviceName,
`timelines/by-match/${matchID}`,
METHOD_NAMES.MATCH.GET_MATCH_TIMELINE,
'GET',
this.limiter,
)
}
/**
* Get match IDs by tournament code.
*
* Implements GET `/lol/match/v3/matches/by-tournament-code/{tournamentCode}/ids`.
*
* @param {string} tournamentCode - The code of the tournament.
*/
listMatchIDs(tournamentCode) {
return new Request(
this.config,
this.serviceName,
`matches/by-tournament-code/${tournamentCode}/ids`,
METHOD_NAMES.MATCH.GET_MATCH_IDS_BY_TOURNAMENT_CODE,
'GET',
this.limiter,
)
}
/**
* Get match by match ID and tournament code.
*
* Implements GET `/lol/match/v3/matches/{matchId}/by-tournament-code/{tournamentCode}`.
*
* @param {number} matchID - The ID of the match.
* @param {string} tournamentCode - The code of the tournament.
*/
getTournamentMatch(matchID, tournamentCode) {
return new Request(
this.config,
this.serviceName,
`matches/${matchID}/by-tournament-code/${tournamentCode}`,
METHOD_NAMES.MATCH.GET_MATCH_BY_TOURNAMENT_CODE,
'GET',
this.limiter,
)
}
}
export default MatchEndpoint
|