private RiotApi(string apiKey, IDictionary <TimeSpan, int> rateLimits) { Requesters.RiotApiRequester = new RateLimitedRequester(apiKey, rateLimits); var requester = Requesters.RiotApiRequester; Summoner = new SummonerEndpoint(requester, _cache); Champion = new ChampionEndpoint(requester); Masteries = new MasteriesEndpoint(requester); Runes = new RunesEndpoint(requester); League = new LeagueEndpoint(requester); Match = new MatchEndpoint(requester, _cache); Spectator = new SpectatorEndpoint(requester); ChampionMastery = new ChampionMasteryEndpoint(requester); ThirdParty = new ThirdPartyEndpoint(requester); Static = StaticDataEndpoints.GetInstance(apiKey, true); }
/// <summary> /// Dependency injection constructor /// </summary> /// <param name="rateLimitedRequester"></param> /// <param name="staticEndpointProvider"></param> public RiotApi(IRateLimitedRequester rateLimitedRequester, IStaticEndpointProvider staticEndpointProvider) { if (rateLimitedRequester == null) { throw new ArgumentNullException(nameof(rateLimitedRequester)); } if (staticEndpointProvider == null) { throw new ArgumentNullException(nameof(staticEndpointProvider)); } Summoner = new SummonerEndpoint(rateLimitedRequester, _cache); Champion = new ChampionEndpoint(rateLimitedRequester); Masteries = new MasteriesEndpoint(rateLimitedRequester); Runes = new RunesEndpoint(rateLimitedRequester); League = new LeagueEndpoint(rateLimitedRequester); Match = new MatchEndpoint(rateLimitedRequester, _cache); Spectator = new SpectatorEndpoint(rateLimitedRequester); ChampionMastery = new ChampionMasteryEndpoint(rateLimitedRequester); ThirdParty = new ThirdPartyEndpoint(rateLimitedRequester); Static = new StaticDataEndpoints(staticEndpointProvider); }