LeagueStats/server/app/Services/Jax/src/Jax.js

41 lines
1.3 KiB
JavaScript
Raw Normal View History

const RiotRateLimiter = require('riot-ratelimiter')
const LeagueEndpoint = require('./Endpoints/LeagueEndpoint')
const MatchEndpoint = require('./Endpoints/MatchEndpoint')
const MatchlistEndpoint = require('./Endpoints/MatchlistEndpoint')
const SpectatorEndpoint = require('./Endpoints/SpectatorEndpoint')
const SummonerEndpoint = require('./Endpoints/SummonerEndpoint')
2019-08-24 14:56:55 +00:00
const CDragonEndpoint = require('./Endpoints/CDragonEndpoint')
2019-08-24 14:56:55 +00:00
class Jax {
2019-09-26 19:20:27 +00:00
constructor(config) {
this.key = config.key
const limiterOptions = {
2019-09-26 19:20:27 +00:00
strategy: config.requestOptions.strategy
}
this.limiter = new RiotRateLimiter(limiterOptions)
2019-09-26 19:20:27 +00:00
this.config = config
2019-09-26 19:20:27 +00:00
this.League = new LeagueEndpoint(this.config, this.limiter)
this.Match = new MatchEndpoint(this.config, this.limiter)
this.Matchlist = new MatchlistEndpoint(this.config, this.limiter)
this.Spectator = new SpectatorEndpoint(this.config, this.limiter)
2019-09-26 19:20:27 +00:00
this.Summoner = new SummonerEndpoint(this.config, this.limiter)
this.CDragon = new CDragonEndpoint()
}
2019-08-24 14:56:55 +00:00
set regionName(regionName) {
2019-09-26 19:20:27 +00:00
this.config.region = regionName
2020-02-13 19:24:17 +00:00
const blacklistedProperties = ['key', 'limiter', 'config', 'version', 'CDragon']
for (const key of Object.getOwnPropertyNames(this)) {
if(blacklistedProperties.includes(key)) continue
this[key].region = regionName
}
2019-08-24 14:56:55 +00:00
}
}
module.exports = Jax