UNPKG

riotapi-js

Version:
93 lines (73 loc) 3.03 kB
"use strict"; var Endpoint = require("./endpoint"), util = require("./util"), config = require("./config.json"), _ = require("lodash"); var RiotApi = function(host, key) { this.host = host; this.key = key; this.endpoints = configure(host, key); }; RiotApi.prototype = (function() { return { // Internal helper $query: function(endpoint, region, id) { return this.endpoints[endpoint].query({ region: util.normalize(region), id: util.normalize(id) }); }, normalize: util.normalize, // Summoner endpoints findSummonerById: function(region, summonerId) { return this.$query("summoner:findById", region, summonerId); }, findSummonerByName: function(region, name) { return this.$query("summoner:findByName", region, name); }, findSummonerRunes: function(region, summonerId) { return this.$query("summoner:findRunes", region, summonerId); }, findSummonerMasteries: function(region, summonerId) { return this.$query("summoner:findMasteries", region, summonerId); }, findSummonerName: function(region, summonerId) { return this.$query("summoner:findName", region, summonerId); }, // League endpoints findLeagueBySummoner: function(region, summonerId) { return this.$query("league:findBySummoner", region, summonerId); }, findLeagueByTeam: function(region, teamId) { return this.$query("league:findByTeam", region, teamId); }, findLeagueEntryBySummoner: function(region, summonerId) { return this.$query("league:findEntryBySummoner", region, summonerId); }, findLeagueEntryByTeam: function(region, teamId) { return this.$query("league:findEntryByTeam", region, teamId); }, findChallengers: function(region) { return this.endpoints["league:findChallengers"].query({ region: util.normalize(region) }); }, findMasters: function(region) { return this.endpoints["league:findMasters"].query({ region: util.normalize(region) }); } } })(); function configure(host, key) { var qs = "api_key=" + encodeURIComponent(key), endpoints = {}; _.forIn(config, function(v, key) { var baseUrl = util.format(host + v.path, { version: v.version }); _.forIn(v.endpoints, function(endpoint, name) { var url = baseUrl + endpoint.path, postfix = (url.indexOf("?") >= 0 ? "&" : "?") + qs; endpoints[key + ":" + name] = new Endpoint(url + postfix, endpoint); }); }); return endpoints; } module.exports = function(host, key) { return new RiotApi(host, key); };