Skip to content

Commit

Permalink
Fixes, added some static endpoint implementations
Browse files Browse the repository at this point in the history
  • Loading branch information
Andres Rodriguez committed Feb 7, 2014
1 parent 47b0154 commit 90471e2
Show file tree
Hide file tree
Showing 3 changed files with 305 additions and 66 deletions.
225 changes: 192 additions & 33 deletions lib/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,38 @@ var format = require('util').format;

var BASE_PATH = '/api/lol/%s/%s/%s';

var CHAMPION_PATH = 'champion';
var CHAMPION_VERSION = 'v1.1';
var GAME_VERSION = 'v1.3';
var LEAGUE_VERSION = 'v2.3';
var STATS_VERSION = 'v1.2';
var SUMMONER_VERSION = 'v1.3';
var STATIC_VERSION = 'v1';

var CHAMPION_PATH = 'champion';
var GAME_BY_SUMM_PATH = 'game/by-summoner/%s/recent';
var GAME_BY_SUMM_VERSION = 'v1.3';

var LEAGUE_CHALLENGER_PATH = 'league/challenger';
var LEAGUE_CHALLENGER_VERSION = 'v2.3';

var LEAGUE_BY_SUMM_ENTRY_PATH = 'league/by-summoner/%s/entry';
var LEAGUE_BY_SUMM_ENTRY_VERSION = 'v2.3';

var LEAGUE_BY_SUMM_PATH = 'league/by-summoner/%s';
var LEAGUE_BY_SUMM_VERSION = 'v2.3';

var STATS_SUMMARY_PATH = 'stats/by-summoner/%s/summary';
var STATS_SUMMARY_VERSION = 'v1.2';

var STATS_RANKED_PATH = 'stats/by-summoner/%s/ranked';
var STATS_RANKED_VERSION = 'v1.2';

var SUMM_MASTERIES_PATH = 'summoner/%s/masteries';
var SUMM_MASTERIES_VERSION = 'v1.3';

var SUMM_RUNES_PATH = 'summoner/%s/runes';
var SUMM_RUNES_VERSION = 'v1.3';

var SUMM_BY_NAME_PATH = 'summoner/by-name/%s';
var SUMM_BY_NAME_VERSION = 'v1.3';

var SUMM_NAME_PATH = 'summoner/%s/name';
var SUMM_NAME_VERSION = 'v1.3';

var SUMM_PATH = 'summoner/%s';
var SUMM_VERSION = 'v1.3';

// Static endpoints

var CHAMPIONS_PATH = 'champion';
var CHAMPION_BY_ID_PATH = 'champion/%s';
var ITEMS_PATH = 'item';
var ITEM_BY_ID_PATH = 'item/%s';
var MASTERIES_PATH = 'mastery';
var MASTERY_BY_ID_PATH = 'mastery/%s';
var RUNES_PATH = 'rune';
var RUNE_BY_ID_PATH = 'rune/%s';
var SPELLS_PATH = 'summoner-spell';
var SPELL_BY_ID_PATH = 'summoner-spell/%s';


function Client(options) {
Expand Down Expand Up @@ -111,7 +108,7 @@ Client.prototype.gameBySummoner = function gameBySummoner(id, cb) {
assert.func(cb, 'callback');

var gamePath = format(GAME_BY_SUMM_PATH, id);
var path = format(BASE_PATH, this.region, GAME_BY_SUMM_VERSION, gamePath);
var path = format(BASE_PATH, this.region, GAME_VERSION, gamePath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
Expand All @@ -125,7 +122,7 @@ Client.prototype.leagueChallenger = function leagueChallenger(type, cb) {
assert.string(type, 'type');
assert.func(cb, 'callback');

var path = format(BASE_PATH, this.region, LEAGUE_CHALLENGER_VERSION,
var path = format(BASE_PATH, this.region, LEAGUE_VERSION,
LEAGUE_CHALLENGER_PATH);
var query = { api_key: this.apiKey, type: type };
var opts = { path: path, query: query };
Expand All @@ -142,7 +139,7 @@ function leagueBySummonerEntry(id, cb) {
assert.func(cb, 'callback');

var gamePath = format(LEAGUE_BY_SUMM_ENTRY_PATH, id);
var path = format(BASE_PATH, this.region, LEAGUE_BY_SUMM_ENTRY_VERSION,
var path = format(BASE_PATH, this.region, LEAGUE_VERSION,
gamePath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
Expand All @@ -158,7 +155,7 @@ Client.prototype.leagueBySummoner = function leagueBySummoner(id, cb) {
assert.func(cb, 'callback');

var gamePath = format(LEAGUE_BY_SUMM_PATH, id);
var path = format(BASE_PATH, this.region, LEAGUE_BY_SUMM_VERSION, gamePath);
var path = format(BASE_PATH, this.region, LEAGUE_VERSION, gamePath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
Expand All @@ -178,7 +175,7 @@ Client.prototype.statsSummary = function statsSummary(id, season, cb) {
assert.func(cb, 'callback');

var statsPath = format(STATS_SUMMARY_PATH, id);
var path = format(BASE_PATH, this.region, STATS_SUMMARY_VERSION, statsPath);
var path = format(BASE_PATH, this.region, STATS_VERSION, statsPath);
var query = { api_key: this.apiKey };
if (season !== undefined) {
query.season = season;
Expand All @@ -201,7 +198,7 @@ Client.prototype.statsRanked = function statsRanked(id, season, cb) {
assert.func(cb, 'callback');

var statsPath = format(STATS_RANKED_PATH, id);
var path = format(BASE_PATH, this.region, STATS_RANKED_VERSION, statsPath);
var path = format(BASE_PATH, this.region, STATS_VERSION, statsPath);
var query = { api_key: this.apiKey };
if (season !== undefined) {
query.season = season;
Expand All @@ -219,7 +216,7 @@ Client.prototype.summonerMasteries = function summonerMasteries(ids, cb) {
assert.func(cb, 'callback');

var summPath = format(SUMM_MASTERIES_PATH, ids.join(','));
var path = format(BASE_PATH, this.region, SUMM_MASTERIES_VERSION, summPath);
var path = format(BASE_PATH, this.region, SUMMONER_VERSION, summPath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
Expand All @@ -234,7 +231,7 @@ Client.prototype.summonerRunes = function summonerRunes(ids, cb) {
assert.func(cb, 'callback');

var summPath = format(SUMM_RUNES_PATH, ids.join(','));
var path = format(BASE_PATH, this.region, SUMM_RUNES_VERSION, summPath);
var path = format(BASE_PATH, this.region, SUMMONER_VERSION, summPath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
Expand All @@ -253,7 +250,7 @@ Client.prototype.summonerByName = function summonerByName(names, cb) {
});

var summPath = format(SUMM_BY_NAME_PATH, names.join(','));
var path = format(BASE_PATH, this.region, SUMM_BY_NAME_VERSION, summPath);
var path = format(BASE_PATH, this.region, SUMMONER_VERSION, summPath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
Expand All @@ -268,7 +265,7 @@ Client.prototype.summonerName = function summonerName(ids, cb) {
assert.func(cb, 'callback');

var summPath = format(SUMM_NAME_PATH, ids.join(','));
var path = format(BASE_PATH, this.region, SUMM_NAME_VERSION, summPath);
var path = format(BASE_PATH, this.region, SUMMONER_VERSION, summPath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
Expand All @@ -283,8 +280,170 @@ Client.prototype.summoner = function summoner(ids, cb) {
assert.func(cb, 'callback');

var summPath = format(SUMM_PATH, ids.join(','));
var path = format(BASE_PATH, this.region, SUMM_VERSION, summPath);
var path = format(BASE_PATH, this.region, SUMMONER_VERSION, summPath);
var query = { api_key: this.apiKey };
var opts = { path: path, query: query };
this._request(opts, cb);
};



/*
* Static endpoints
*/


/*
* /api/lol/static-data/{region}/{version}/champion
*/
Client.prototype.champions = function champions(options, cb) {
if (typeof (options) === 'function') {
cb = options;
options = undefined;
}
assert.func(cb, 'callback');

var path = format(BASE_PATH, 'static-data/' + this.region,
STATIC_VERSION, CHAMPIONS_PATH);
var query = { api_key: this.apiKey };
if (options) {
['locale', 'version', 'champData'].forEach(function (key) {
if (options[key] !== undefined) {
query[key] = options[key];
}
});
}
var opts = { path: path, query: query };
this._request(opts, cb);
};


/*
* /api/lol/static-data/{region}/{version}/champion/{id}
*/
Client.prototype.championById = function championById(id, options, cb) {
assert.number(id, 'id');
if (typeof (options) === 'function') {
cb = options;
options = undefined;
}
assert.func(cb, 'callback');

var chamPath = format(CHAMPION_BY_ID_PATH, id);
var path = format(BASE_PATH, 'static-data/' + this.region,
STATIC_VERSION, chamPath);
var query = { api_key: this.apiKey };
if (options) {
['locale', 'version', 'champData'].forEach(function (key) {
if (options[key] !== undefined) {
query[key] = options[key];
}
});
}
var opts = { path: path, query: query };
this._request(opts, cb);
};


/*
* /api/lol/static-data/{region}/{version}/item
*/
Client.prototype.items = function items(options, cb) {
if (typeof (options) === 'function') {
cb = options;
options = undefined;
}
assert.func(cb, 'callback');

var path = format(BASE_PATH, 'static-data/' + this.region,
STATIC_VERSION, ITEMS_PATH);
var query = { api_key: this.apiKey };
if (options) {
['locale', 'version', 'itemListData'].forEach(function (key) {
if (options[key] !== undefined) {
query[key] = options[key];
}
});
}
var opts = { path: path, query: query };
this._request(opts, cb);
};


/*
* /api/lol/static-data/{region}/{version}/item/{id}
*/
Client.prototype.itemById = function itemById(id, options, cb) {
assert.number(id, 'id');
if (typeof (options) === 'function') {
cb = options;
options = undefined;
}
assert.func(cb, 'callback');

var itemPath = format(ITEM_BY_ID_PATH, id);
var path = format(BASE_PATH, 'static-data/' + this.region,
STATIC_VERSION, itemPath);
var query = { api_key: this.apiKey };
if (options) {
['locale', 'version', 'itemListData'].forEach(function (key) {
if (options[key] !== undefined) {
query[key] = options[key];
}
});
}
var opts = { path: path, query: query };
this._request(opts, cb);
};


/*
* /api/lol/static-data/{region}/{version}/mastery
*/
Client.prototype.masteries = function masteries(options, cb) {
if (typeof (options) === 'function') {
cb = options;
options = undefined;
}
assert.func(cb, 'callback');

var path = format(BASE_PATH, 'static-data/' + this.region,
STATIC_VERSION, MASTERIES_PATH);
var query = { api_key: this.apiKey };
if (options) {
['locale', 'version', 'masteryData'].forEach(function (key) {
if (options[key] !== undefined) {
query[key] = options[key];
}
});
}
var opts = { path: path, query: query };
this._request(opts, cb);
};


/*
* /api/lol/static-data/{region}/{version}/mastery/{id}
*/
Client.prototype.masteryById = function masteryById(id, options, cb) {
assert.number(id, 'id');
if (typeof (options) === 'function') {
cb = options;
options = undefined;
}
assert.func(cb, 'callback');

var itemPath = format(MASTERY_BY_ID_PATH, id);
var path = format(BASE_PATH, 'static-data/' + this.region,
STATIC_VERSION, itemPath);
var query = { api_key: this.apiKey };
if (options) {
['locale', 'version', 'masteryData'].forEach(function (key) {
if (options[key] !== undefined) {
query[key] = options[key];
}
});
}
var opts = { path: path, query: query };
this._request(opts, cb);
};
Expand Down
Loading

0 comments on commit 90471e2

Please sign in to comment.