taric 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/taric/client.rb +6 -6
- data/lib/taric/configuration.rb +4 -4
- data/lib/taric/operation/api.rb +6 -2
- data/lib/taric/operation/base.rb +1 -0
- data/lib/taric/operation/champion.rb +3 -3
- data/lib/taric/operation/champion_mastery.rb +30 -0
- data/lib/taric/operation/current_game.rb +2 -1
- data/lib/taric/operation/endpoint_template.rb +15 -0
- data/lib/taric/operation/featured_games.rb +2 -1
- data/lib/taric/operation/game.rb +2 -1
- data/lib/taric/operation/league.rb +7 -7
- data/lib/taric/operation/lol_static_data.rb +16 -15
- data/lib/taric/operation/lol_status.rb +3 -2
- data/lib/taric/operation/match.rb +24 -4
- data/lib/taric/operation/match_list.rb +2 -1
- data/lib/taric/operation/stats.rb +3 -2
- data/lib/taric/operation/summoner.rb +6 -5
- data/lib/taric/operation/team.rb +3 -2
- data/lib/taric/operation/tournament.rb +53 -0
- data/lib/taric/version.rb +1 -1
- data/riot.txt +1 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7a9d60cdc1626c16ab351a1a52aadf2bf4d14f8
|
4
|
+
data.tar.gz: 8e1db1127f7368f24dac5ce9fd5fb150121b7d94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8ed16acc7ddb6402f0a63ef513f04a98ffadc1495b23cddb9e6febed8450b2220f951727796654b4969313aa0371e8c31c58688e6b65c1af58d9fe0f00cc2b3
|
7
|
+
data.tar.gz: c02e95331afd622485dc3560f0940c235291d541f02aacea4eec8af8074c4ddfd8dec4dab690f274c32f6172fcee332266a7efabaadba4cb06d28d97e5d1ef31
|
data/lib/taric/client.rb
CHANGED
@@ -67,7 +67,7 @@ module Taric
|
|
67
67
|
# @param region [Symbol] key for region
|
68
68
|
# @param operation [Addressable::Template] URI template for operation
|
69
69
|
# @param options [Hash] optional, values for template
|
70
|
-
# @return [
|
70
|
+
# @return [String] of expanded template
|
71
71
|
#
|
72
72
|
# @example
|
73
73
|
# Taric::Client.expand_template(api_key: 'ritokey', region: :na, operation: Taric::Operation::Champion::CHAMPIONS)
|
@@ -78,9 +78,9 @@ module Taric
|
|
78
78
|
|
79
79
|
private
|
80
80
|
def response_for(operation, options = {})
|
81
|
-
-> url {
|
82
|
-
API_CALL.(
|
83
|
-
}.(self.class.expand_template(api_key: @api_key, region: @region, operation: operation, options: options))
|
81
|
+
-> (method, url, body, headers) {
|
82
|
+
API_CALL.(method, url, body, headers, @config.requestor.(@conn), @config.response_handler)
|
83
|
+
}.(operation.method, self.class.expand_template(api_key: @api_key, region: @region, operation: operation.template_url, options: options), operation.body, operation.headers)
|
84
84
|
end
|
85
85
|
|
86
86
|
class ParallelClient
|
@@ -101,13 +101,13 @@ module Taric
|
|
101
101
|
-> responses {
|
102
102
|
@operations.clear
|
103
103
|
responses
|
104
|
-
}.(
|
104
|
+
}.(@parent.config.parallel_response_handler.(@parent.config.parallel_requestor.(@parent.conn, @operations)))
|
105
105
|
end
|
106
106
|
|
107
107
|
private
|
108
108
|
|
109
109
|
def response_for(operation, options = {})
|
110
|
-
@operations << @parent.class.expand_template(api_key: @parent.api_key, region: @parent.region, operation: operation, options: options)
|
110
|
+
@operations << {url: @parent.class.expand_template(api_key: @parent.api_key, region: @parent.region, operation: operation.template_url, options: options), method: operation.method, body: operation.body, headers: operation.headers}
|
111
111
|
self
|
112
112
|
end
|
113
113
|
|
data/lib/taric/configuration.rb
CHANGED
@@ -2,16 +2,16 @@ module Taric
|
|
2
2
|
class Configuration
|
3
3
|
attr_accessor :api_key, :format, :user_agent, :connection_opts, :adapter, :region, :requestor, :response_handler, :parallel_requestor, :parallel_response_handler, :raw
|
4
4
|
|
5
|
-
DEFAULT_REQUESTOR = -> connection, url {
|
6
|
-
connection.
|
5
|
+
DEFAULT_REQUESTOR = -> (connection, method, url, body, headers) {
|
6
|
+
connection.send(method, url, body, headers)
|
7
7
|
}.curry
|
8
8
|
|
9
9
|
DEFAULT_RESPONSE_HANDLER = -> response {
|
10
10
|
response
|
11
11
|
}
|
12
12
|
|
13
|
-
PARALLEL_REQUESTOR = -> connection,
|
14
|
-
|
13
|
+
PARALLEL_REQUESTOR = -> connection, operations {
|
14
|
+
operations.map{|operation| connection.send(operation[:method], operation[:url], operation[:body], operation[:headers])}
|
15
15
|
}.curry
|
16
16
|
|
17
17
|
PARALLEL_RESPONSE_HANDLER = -> responses {
|
data/lib/taric/operation/api.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'champion'
|
2
|
+
require_relative 'champion_mastery'
|
2
3
|
require_relative 'current_game'
|
3
4
|
require_relative 'featured_games'
|
4
5
|
require_relative 'game'
|
@@ -10,12 +11,14 @@ require_relative 'match_list'
|
|
10
11
|
require_relative 'stats'
|
11
12
|
require_relative 'summoner'
|
12
13
|
require_relative 'team'
|
14
|
+
require_relative 'tournament'
|
13
15
|
|
14
16
|
# Combines operations of LoL API.
|
15
17
|
module Taric
|
16
18
|
module Operation
|
17
19
|
module API
|
18
20
|
include Taric::Operation::Champion
|
21
|
+
include Taric::Operation::ChampionMastery
|
19
22
|
include Taric::Operation::CurrentGame
|
20
23
|
include Taric::Operation::FeaturedGames
|
21
24
|
include Taric::Operation::Game
|
@@ -27,14 +30,15 @@ module Taric
|
|
27
30
|
include Taric::Operation::Stats
|
28
31
|
include Taric::Operation::Summoner
|
29
32
|
include Taric::Operation::Team
|
33
|
+
include Taric::Operation::Tournament
|
30
34
|
|
31
35
|
# Template for requesting the url and processing the response.
|
32
36
|
#
|
33
37
|
# @param url String
|
34
38
|
# @param requestor Proc (lambda)
|
35
39
|
# @param response_handler Proc (lambda)
|
36
|
-
API_CALL = -> (url
|
37
|
-
response_handler.(requestor.(url))
|
40
|
+
API_CALL = -> (method, url, body, headers, requestor, response_handler) {
|
41
|
+
response_handler.(requestor.(method, url, body, headers))
|
38
42
|
}
|
39
43
|
|
40
44
|
end
|
data/lib/taric/operation/base.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative 'base'
|
2
|
-
|
2
|
+
require_relative 'endpoint_template'
|
3
3
|
module Taric
|
4
4
|
module Operation
|
5
5
|
module Champion
|
@@ -8,8 +8,8 @@ module Taric
|
|
8
8
|
CHAMPION_VERSION = 'v1.2'.freeze
|
9
9
|
CHAMPION_BASE_URL = "#{BASE_URL_FN.(CHAMPION_VERSION)}/champion"
|
10
10
|
|
11
|
-
CHAMPIONS =
|
12
|
-
CHAMPION_BY_ID =
|
11
|
+
CHAMPIONS = EndpointTemplate.new(template_url: "#{CHAMPION_BASE_URL}{?api_key,freeToPlay}")
|
12
|
+
CHAMPION_BY_ID = EndpointTemplate.new(template_url: "#{CHAMPION_BASE_URL}/{id}{?api_key}")
|
13
13
|
|
14
14
|
# Returns champion data.
|
15
15
|
#
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
module Taric
|
3
|
+
module Operation
|
4
|
+
module ChampionMastery
|
5
|
+
include Taric::Operation::Base
|
6
|
+
|
7
|
+
BASE_MASTERY_URL = "https://{host}/championmastery/location/{platform_id}/player"
|
8
|
+
MASTERY_BY_CHAMPION_ID = EndpointTemplate.new(template_url: "#{BASE_MASTERY_URL}/{summonerId}/champion/{championId}{?api_key}")
|
9
|
+
MASTERY_ALL_CHAMPIONS = EndpointTemplate.new(template_url: "#{BASE_MASTERY_URL}/{summonerId}/champions{?api_key}")
|
10
|
+
MASTERY_SCORE = EndpointTemplate.new(template_url: "#{BASE_MASTERY_URL}/{summonerId}/score{?api_key}")
|
11
|
+
MASTERY_TOP_CHAMPIONS = EndpointTemplate.new(template_url: "#{BASE_MASTERY_URL}/{summonerId}/topchampions{?api_key,count}")
|
12
|
+
|
13
|
+
def champion_mastery(summoner_id: , champion_id:)
|
14
|
+
response_for MASTERY_BY_CHAMPION_ID, {summonerId: summoner_id, championId: champion_id}
|
15
|
+
end
|
16
|
+
|
17
|
+
def champion_mastery_all(summoner_id: )
|
18
|
+
response_for MASTERY_ALL_CHAMPIONS, {summonerId: summoner_id}
|
19
|
+
end
|
20
|
+
|
21
|
+
def champion_mastery_score(summoner_id: )
|
22
|
+
response_for MASTERY_SCORE, {summonerId: summoner_id}
|
23
|
+
end
|
24
|
+
|
25
|
+
def top_champions(summoner_id: , count: 3)
|
26
|
+
response_for MASTERY_TOP_CHAMPIONS, {summonerId: summoner_id, count: count}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
require_relative 'endpoint_template'
|
1
2
|
module Taric
|
2
3
|
module Operation
|
3
4
|
module CurrentGame
|
4
|
-
GAME_INFO =
|
5
|
+
GAME_INFO = EndpointTemplate.new(template_url: 'https://{host}/observer-mode/rest/consumer/getSpectatorGameInfo/{platform_id}/{summonerId}{?api_key}')
|
5
6
|
|
6
7
|
# Returns current game data for summoner id.
|
7
8
|
#
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'addressable/template'
|
2
|
+
|
3
|
+
module Taric
|
4
|
+
module Operation
|
5
|
+
class EndpointTemplate
|
6
|
+
attr_accessor :template_url, :method, :body, :headers
|
7
|
+
def initialize(template_url:, method: :get, body: nil, headers: {})
|
8
|
+
@template_url = Addressable::Template.new(template_url)
|
9
|
+
@method = method
|
10
|
+
@body = body
|
11
|
+
@headers = headers
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
require_relative 'endpoint_template'
|
1
2
|
module Taric
|
2
3
|
module Operation
|
3
4
|
module FeaturedGames
|
4
|
-
FEATURED_GAMES =
|
5
|
+
FEATURED_GAMES = EndpointTemplate.new(template_url:'https://{host}/observer-mode/rest/featured{?api_key}')
|
5
6
|
|
6
7
|
# Returns featured games.
|
7
8
|
#
|
data/lib/taric/operation/game.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module Game
|
5
6
|
include Taric::Operation::Base
|
6
7
|
|
7
8
|
GAME_VERSION = 'v1.3'.freeze
|
8
|
-
RECENT =
|
9
|
+
RECENT = EndpointTemplate.new(template_url:"#{BASE_URL_FN.(GAME_VERSION)}/game/by-summoner/{summonerId}/recent{?api_key}")
|
9
10
|
|
10
11
|
# Returns recent game data for summoner id.
|
11
12
|
#
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative 'base'
|
2
|
-
|
2
|
+
require_relative 'endpoint_template'
|
3
3
|
module Taric
|
4
4
|
module Operation
|
5
5
|
module League
|
@@ -8,12 +8,12 @@ module Taric
|
|
8
8
|
LEAGUE_VERSION = 'v2.5'
|
9
9
|
BASE_LEAGUE_URL = "#{BASE_URL_FN.(LEAGUE_VERSION)}/league"
|
10
10
|
|
11
|
-
LEAGUES_BY_SUMMONER_IDS =
|
12
|
-
ENTRIES_BY_SUMMONER_IDS =
|
13
|
-
LEAGUES_BY_TEAM_IDS =
|
14
|
-
ENTRIES_BY_TEAM_IDS =
|
15
|
-
CHALLENGER =
|
16
|
-
MASTER =
|
11
|
+
LEAGUES_BY_SUMMONER_IDS = EndpointTemplate.new(template_url: "#{BASE_LEAGUE_URL}/by-summoner/{summonerIds}{?api_key}")
|
12
|
+
ENTRIES_BY_SUMMONER_IDS = EndpointTemplate.new(template_url: "#{BASE_LEAGUE_URL}/by-summoner/{summonerIds}/entry{?api_key}")
|
13
|
+
LEAGUES_BY_TEAM_IDS = EndpointTemplate.new(template_url: "#{BASE_LEAGUE_URL}/by-team/{teamIds}{?api_key}")
|
14
|
+
ENTRIES_BY_TEAM_IDS = EndpointTemplate.new(template_url: "#{BASE_LEAGUE_URL}/by-team/{teamIds}/entry{?api_key}")
|
15
|
+
CHALLENGER = EndpointTemplate.new(template_url: "#{BASE_LEAGUE_URL}/challenger{?api_key,type}")
|
16
|
+
MASTER = EndpointTemplate.new(template_url: "#{BASE_LEAGUE_URL}/master{?api_key,type}")
|
17
17
|
|
18
18
|
CHALLENGER_QUEUE_TYPES = ['RANKED_SOLO_5x5'.freeze, 'RANKED_TEAM_3x3'.freeze, 'RANKED_TEAM_5x5'.freeze].freeze
|
19
19
|
MASTER_QUEUE_TYPES = CHALLENGER_QUEUE_TYPES
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module LolStaticData
|
@@ -6,21 +7,21 @@ module Taric
|
|
6
7
|
VERSION = 'v1.2'
|
7
8
|
BASE_STATIC_URL = "https://global.api.pvp.net/api/lol/static-data/{region}/#{VERSION}"
|
8
9
|
|
9
|
-
STATIC_CHAMPIONS =
|
10
|
-
STATIC_CHAMPION =
|
11
|
-
STATIC_ITEMS =
|
12
|
-
STATIC_ITEM =
|
13
|
-
STATIC_LANGUAGE_STRINGS =
|
14
|
-
STATIC_LANGUAGES =
|
15
|
-
STATIC_MAP =
|
16
|
-
STATIC_MASTERIES =
|
17
|
-
STATIC_MASTERY =
|
18
|
-
STATIC_REALM =
|
19
|
-
STATIC_RUNES =
|
20
|
-
STATIC_RUNE =
|
21
|
-
STATIC_SUMMONER_SPELLS =
|
22
|
-
STATIC_SUMMONER_SPELL =
|
23
|
-
STATIC_VERSIONS =
|
10
|
+
STATIC_CHAMPIONS = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/champion{?api_key,dataById,champData,locale,version}")
|
11
|
+
STATIC_CHAMPION = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/champion/{id}{?api_key,locale,version}")
|
12
|
+
STATIC_ITEMS = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/item{?api_key,itemListData,locale,version}")
|
13
|
+
STATIC_ITEM = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/item/{id}{?api_key,itemData,locale,version}")
|
14
|
+
STATIC_LANGUAGE_STRINGS = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/language-strings{?api_key,locale,version}")
|
15
|
+
STATIC_LANGUAGES = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/languages{?api_key}")
|
16
|
+
STATIC_MAP = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/map{?api_key}")
|
17
|
+
STATIC_MASTERIES = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/mastery{?api_key,masteryListData,locale,version}")
|
18
|
+
STATIC_MASTERY = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/mastery/{id}{?api_key,masteryData,locale,version}")
|
19
|
+
STATIC_REALM = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/realm{?api_key}")
|
20
|
+
STATIC_RUNES = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/rune{?api_key,runeListData,locale,version}")
|
21
|
+
STATIC_RUNE = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/rune/{id}{?api_key,runeData,locale,version}")
|
22
|
+
STATIC_SUMMONER_SPELLS = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/summoner-spell{?api_key,spellData,locale,version}")
|
23
|
+
STATIC_SUMMONER_SPELL = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/summoner-spell/{id}{?api_key,spellData,locale,version}")
|
24
|
+
STATIC_VERSIONS = EndpointTemplate.new(template_url: "#{BASE_STATIC_URL}/versions{?api_key}")
|
24
25
|
|
25
26
|
CHAMP_DATA_OPTIONS = [
|
26
27
|
'all'.freeze,
|
@@ -1,8 +1,9 @@
|
|
1
|
+
require_relative 'endpoint_template'
|
1
2
|
module Taric
|
2
3
|
module Operation
|
3
4
|
module LolStatus
|
4
|
-
SHARDS =
|
5
|
-
SHARD =
|
5
|
+
SHARDS = EndpointTemplate.new(template_url: 'http://status.leagueoflegends.com/shards')
|
6
|
+
SHARD = EndpointTemplate.new(template_url: 'http://status.leagueoflegends.com/shards/{region}')
|
6
7
|
|
7
8
|
# Region metadata.
|
8
9
|
#
|
@@ -1,21 +1,41 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module Match
|
5
6
|
include Taric::Operation::Base
|
6
7
|
|
7
8
|
MATCH_VERSION = 'v2.2'
|
8
|
-
MATCH =
|
9
|
+
MATCH = EndpointTemplate.new(template_url: "#{BASE_URL_FN.(MATCH_VERSION)}/match/{matchId}{?api_key,includeTimeline}")
|
10
|
+
MATCH_IDS_BY_TOURNAMENT = EndpointTemplate.new(template_url: "#{BASE_URL_FN.(MATCH_VERSION)}/match/by-tournament/{tournamentCode}/ids{?api_key}")
|
11
|
+
MATCH_FOR_TOURNAMENT = EndpointTemplate.new(template_url: "#{BASE_URL_FN.(MATCH_VERSION)}/match/for-tournament/{matchId}{?api_key,tournamentCode,includeTimeline}")
|
9
12
|
|
10
13
|
# Match data for id.
|
11
14
|
#
|
12
15
|
# @see https://developer.riotgames.com/api/methods#!/1027/3483
|
13
|
-
# @param
|
16
|
+
# @param match_id [Fixnum] id of match
|
14
17
|
# @param include_timeline [Boolean] optional, true includes timestamps on events
|
15
18
|
# @return match data for id.
|
16
|
-
def match(
|
17
|
-
response_for MATCH, {matchId:
|
19
|
+
def match(match_id:, include_timeline: nil)
|
20
|
+
response_for MATCH, {matchId: match_id, includeTimeline: include_timeline}
|
18
21
|
end
|
22
|
+
|
23
|
+
# Retrieve match IDs by tournament code.
|
24
|
+
# @param tournament_code [String] tournament code
|
25
|
+
# @return match ids by tournament code
|
26
|
+
def match_ids_by_tournament(tournament_code: )
|
27
|
+
response_for MATCH_IDS_BY_TOURNAMENT, tournamentCode: tournament_code
|
28
|
+
end
|
29
|
+
|
30
|
+
# Retrieve match by match ID and tournament code.
|
31
|
+
# @param match_id [Fixnum] id of match
|
32
|
+
# @param tournament_code [String] tournament code
|
33
|
+
# @param include_timeline [Boolean] optional, true includes timestamps on events
|
34
|
+
# @return match ids by tournament code
|
35
|
+
def match_for_tournament(match_id:, tournament_code:, include_timeline: false)
|
36
|
+
response_for MATCH_IDS_BY_TOURNAMENT, tournamentCode: tournament_code, matchId: match_id, includeTimeline: include_timeline
|
37
|
+
end
|
38
|
+
|
19
39
|
end
|
20
40
|
end
|
21
41
|
end
|
@@ -1,11 +1,12 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module MatchList
|
5
6
|
include Taric::Operation::Base
|
6
7
|
|
7
8
|
MATCH_LIST_VERSION = 'v2.2'.freeze
|
8
|
-
MATCH_LIST =
|
9
|
+
MATCH_LIST = EndpointTemplate.new(template_url: "#{BASE_URL_FN.(MATCH_LIST_VERSION)}/matchlist/by-summoner/{summonerId}{?api_key,championIds,rankedQueues,seasons,beginTime,endTime,beginIndex,endIndex}")
|
9
10
|
|
10
11
|
# Returns match list for summoner.
|
11
12
|
#
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module Stats
|
@@ -6,8 +7,8 @@ module Taric
|
|
6
7
|
|
7
8
|
STATS_VERSION = 'v1.3'.freeze
|
8
9
|
BASE_STATS_URL = "#{BASE_URL_FN.(STATS_VERSION)}/stats/by-summoner/{summonerId}"
|
9
|
-
RANKED =
|
10
|
-
SUMMARY =
|
10
|
+
RANKED = EndpointTemplate.new(template_url: "#{BASE_STATS_URL}/ranked{?api_key,season}")
|
11
|
+
SUMMARY = EndpointTemplate.new(template_url: "#{BASE_STATS_URL}/summary{?api_key,season}")
|
11
12
|
|
12
13
|
# Ranked stats for summoner.
|
13
14
|
#
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module Summoner
|
@@ -8,11 +9,11 @@ module Taric
|
|
8
9
|
BASE_SUMMONER_URL = "#{BASE_URL_FN.(VERSION)}/summoner"
|
9
10
|
BASE_SUMMONERS_BY_IDS = "#{BASE_SUMMONER_URL}/{summonerIds}"
|
10
11
|
|
11
|
-
SUMMONERS_BY_NAMES =
|
12
|
-
SUMMONERS_BY_IDS =
|
13
|
-
MASTERIES =
|
14
|
-
NAMES =
|
15
|
-
RUNES =
|
12
|
+
SUMMONERS_BY_NAMES = EndpointTemplate.new(template_url: "#{BASE_SUMMONER_URL}/by-name/{summonerNames}{?api_key}")
|
13
|
+
SUMMONERS_BY_IDS = EndpointTemplate.new(template_url: "#{BASE_SUMMONERS_BY_IDS}{?api_key}")
|
14
|
+
MASTERIES = EndpointTemplate.new(template_url: "#{BASE_SUMMONERS_BY_IDS}/masteries{?api_key}")
|
15
|
+
NAMES = EndpointTemplate.new(template_url: "#{BASE_SUMMONERS_BY_IDS}/name{?api_key}")
|
16
|
+
RUNES = EndpointTemplate.new(template_url: "#{BASE_SUMMONERS_BY_IDS}/runes{?api_key}")
|
16
17
|
|
17
18
|
# Returns [Hash] of summoner data hashes keyed by summoner name
|
18
19
|
#
|
data/lib/taric/operation/team.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
2
3
|
module Taric
|
3
4
|
module Operation
|
4
5
|
module Team
|
@@ -7,8 +8,8 @@ module Taric
|
|
7
8
|
TEAM_VERSION = 'v2.4'.freeze
|
8
9
|
BASE_TEAM_URL = "#{BASE_URL_FN.(TEAM_VERSION)}/team"
|
9
10
|
|
10
|
-
TEAMS_BY_SUMMONER_IDS =
|
11
|
-
TEAMS_BY_TEAM_IDS =
|
11
|
+
TEAMS_BY_SUMMONER_IDS = EndpointTemplate.new(template_url: "#{BASE_TEAM_URL}/by-summoner/{summonerIds}")
|
12
|
+
TEAMS_BY_TEAM_IDS = EndpointTemplate.new(template_url: "#{BASE_TEAM_URL}/{teamIds}")
|
12
13
|
|
13
14
|
# Teams by summoner ids.
|
14
15
|
#
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
require_relative 'endpoint_template'
|
3
|
+
require 'oj'
|
4
|
+
module Taric
|
5
|
+
module Operation
|
6
|
+
module Tournament
|
7
|
+
include Taric::Operation::Base
|
8
|
+
|
9
|
+
TOURNAMENT_VERSION = 'v1'.freeze
|
10
|
+
PROVIDER_URL = "https://global.api.pvp.net/tournament/public/#{TOURNAMENT_VERSION}/provider".freeze
|
11
|
+
TOURNAMENT_URL = "https://global.api.pvp.net/tournament/public/#{TOURNAMENT_VERSION}/tournament".freeze
|
12
|
+
CODE_URL = "https://global.api.pvp.net/tournament/public/#{TOURNAMENT_VERSION}/code{?tournamentId,count}".freeze
|
13
|
+
TOURNAMENT_BY_CODE_URL = "https://global.api.pvp.net/tournament/public/#{TOURNAMENT_VERSION}/code/{tournamentCode}".freeze
|
14
|
+
LOBBY_EVENTS_BY_CODE_URL = "https://global.api.pvp.net/tournament/public/#{TOURNAMENT_VERSION}/lobby/events/by-code/{tournamentCode}".freeze
|
15
|
+
|
16
|
+
|
17
|
+
# Creates a tournament provider and returns its ID.
|
18
|
+
#
|
19
|
+
def create_provider(region:, url: )
|
20
|
+
response_for EndpointTemplate.new(template_url: PROVIDER_URL, method: :post, headers: {"X-Riot-Token" => @api_key, "Content-Type" => 'application/json'}, body: "{\"region\": \"#{region}\", \"url\": \"#{url}\"}")
|
21
|
+
end
|
22
|
+
|
23
|
+
# Creates a tournament and returns its ID.
|
24
|
+
#
|
25
|
+
def create_tournament(name: '', provider_id: )
|
26
|
+
response_for EndpointTemplate.new(template_url: TOURNAMENT_URL, method: :post, headers: {"X-Riot-Token" => @api_key, "Content-Type" => 'application/json'}, body: "{\"name\": \"#{name}\", \"providerId\": #{provider_id}}")
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_tournament_codes(tournament_id: , count:, allowed_summoner_ids: [], map_type:, metadata: nil, pick_type:, spectator_type:, team_size: )
|
30
|
+
body = {'mapType'.freeze => map_type, 'teamSize'.freeze => team_size, 'pickType'.freeze => pick_type, 'spectatorType'.freeze => spectator_type}
|
31
|
+
body.merge!('metadata'.freeze => metadata) unless metadata.nil?
|
32
|
+
body.merge!('allowed_summoner_ids'.freeze => {'participants'.freeze => allowed_summoner_ids}) unless allowed_summoner_ids.empty?
|
33
|
+
response_for(EndpointTemplate.new(template_url: CODE_URL, method: :post, headers: {'X-Riot-Token'.freeze => @api_key, 'Content-Type'.freeze => 'application/json'.freeze},
|
34
|
+
body: Oj.dump(body)), tournamentId: tournament_id, count: count)
|
35
|
+
end
|
36
|
+
|
37
|
+
def tournament_by_code(tournament_code: )
|
38
|
+
response_for EndpointTemplate.new(template_url: TOURNAMENT_BY_CODE_URL, headers: {'X-Riot-Token'.freeze => @api_key, 'Content-Type'.freeze => 'application/json'.freeze}), tournamentCode: tournament_code
|
39
|
+
end
|
40
|
+
|
41
|
+
# Update the pick type, map, spectator type, or allowed summoners for a code
|
42
|
+
def update_tournament(tournament_code:, allowed_participants: nil, spectator_type: nil, pick_type: nil, map_type: nil)
|
43
|
+
body = {'spectatorType'.freeze => spectator_type, 'pickType'.freeze => pick_type, 'mapType'.freeze => map_type, 'allowedParticipants'.freeze => allowed_participants}.select!{ |_, v| !v.nil? }
|
44
|
+
response_for EndpointTemplate.new(template_url: TOURNAMENT_BY_CODE_URL, headers: {'X-Riot-Token'.freeze => @api_key, 'Content-Type'.freeze => 'application/json'.freeze},
|
45
|
+
body: Oj.dump(body), method: :put), tournamentCode: tournament_code
|
46
|
+
end
|
47
|
+
|
48
|
+
def lobby_events_by_code(tournament_code: )
|
49
|
+
response_for EndpointTemplate.new(template_url: LOBBY_EVENTS_BY_CODE_URL, headers: {'X-Riot-Token'.freeze => @api_key, 'Content-Type'.freeze => 'application/json'.freeze}), tournamentCode: tournament_code
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/taric/version.rb
CHANGED
data/riot.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
edf4d7d3-0c8e-4cf0-907a-6fd40eae8dbf
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taric
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Yi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -196,7 +196,9 @@ files:
|
|
196
196
|
- lib/taric/operation/api.rb
|
197
197
|
- lib/taric/operation/base.rb
|
198
198
|
- lib/taric/operation/champion.rb
|
199
|
+
- lib/taric/operation/champion_mastery.rb
|
199
200
|
- lib/taric/operation/current_game.rb
|
201
|
+
- lib/taric/operation/endpoint_template.rb
|
200
202
|
- lib/taric/operation/featured_games.rb
|
201
203
|
- lib/taric/operation/game.rb
|
202
204
|
- lib/taric/operation/league.rb
|
@@ -207,7 +209,9 @@ files:
|
|
207
209
|
- lib/taric/operation/stats.rb
|
208
210
|
- lib/taric/operation/summoner.rb
|
209
211
|
- lib/taric/operation/team.rb
|
212
|
+
- lib/taric/operation/tournament.rb
|
210
213
|
- lib/taric/version.rb
|
214
|
+
- riot.txt
|
211
215
|
- taric.gemspec
|
212
216
|
homepage: http://github.com/josephyi/taric
|
213
217
|
licenses:
|