hextech 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +17 -0
- data/CHANGELOG.md +54 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +134 -0
- data/LICENSE.md +21 -0
- data/README.md +50 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docs/logo.png +0 -0
- data/hextech.gemspec +41 -0
- data/lib/hextech/adapter.rb +46 -0
- data/lib/hextech/base_struct.rb +13 -0
- data/lib/hextech/errors.rb +26 -0
- data/lib/hextech/global/account/base.rb +25 -0
- data/lib/hextech/global/account/by_puuid.rb +30 -0
- data/lib/hextech/global/account/by_riot_id.rb +35 -0
- data/lib/hextech/global/account.rb +23 -0
- data/lib/hextech/global/active_shard.rb +43 -0
- data/lib/hextech/global/response/account/by_puuid.rb +17 -0
- data/lib/hextech/global/response/account/by_riot_id.rb +17 -0
- data/lib/hextech/global/response/active_shard.rb +15 -0
- data/lib/hextech/global.rb +8 -0
- data/lib/hextech/league/champion_rotation.rb +39 -0
- data/lib/hextech/league/champions.rb +35 -0
- data/lib/hextech/league/clash/all_tournaments.rb +29 -0
- data/lib/hextech/league/clash/base.rb +25 -0
- data/lib/hextech/league/clash/by_summoner_id.rb +30 -0
- data/lib/hextech/league/clash/by_tournament_id.rb +30 -0
- data/lib/hextech/league/clash/team_by_team_id.rb +30 -0
- data/lib/hextech/league/clash/tournament_by_team_id.rb +30 -0
- data/lib/hextech/league/clash.rb +38 -0
- data/lib/hextech/league/mastery/all_champions.rb +30 -0
- data/lib/hextech/league/mastery/base.rb +25 -0
- data/lib/hextech/league/mastery/by_champion.rb +31 -0
- data/lib/hextech/league/mastery/total_score.rb +26 -0
- data/lib/hextech/league/mastery.rb +28 -0
- data/lib/hextech/league/match/base.rb +25 -0
- data/lib/hextech/league/match/by_match_id.rb +26 -0
- data/lib/hextech/league/match/by_puuid.rb +26 -0
- data/lib/hextech/league/match/timeline.rb +26 -0
- data/lib/hextech/league/match.rb +28 -0
- data/lib/hextech/league/patches.rb +23 -0
- data/lib/hextech/league/response/active_games.rb +43 -0
- data/lib/hextech/league/response/champion_rotation.rb +15 -0
- data/lib/hextech/league/response/champions.rb +60 -0
- data/lib/hextech/league/response/clash/player.rb +18 -0
- data/lib/hextech/league/response/clash/team.rb +27 -0
- data/lib/hextech/league/response/clash/tournament.rb +25 -0
- data/lib/hextech/league/response/featured_games.rb +47 -0
- data/lib/hextech/league/response/mastery.rb +21 -0
- data/lib/hextech/league/response/status.rb +17 -0
- data/lib/hextech/league/response/summoner.rb +19 -0
- data/lib/hextech/league/spectator/active_games.rb +30 -0
- data/lib/hextech/league/spectator/base.rb +25 -0
- data/lib/hextech/league/spectator/featured_games.rb +29 -0
- data/lib/hextech/league/spectator.rb +23 -0
- data/lib/hextech/league/status.rb +39 -0
- data/lib/hextech/league/summoner/base.rb +29 -0
- data/lib/hextech/league/summoner/by_account_id.rb +26 -0
- data/lib/hextech/league/summoner/by_puuid.rb +26 -0
- data/lib/hextech/league/summoner/by_summoner_id.rb +26 -0
- data/lib/hextech/league/summoner/by_summoner_name.rb +30 -0
- data/lib/hextech/league/summoner.rb +33 -0
- data/lib/hextech/league/third_party_code.rb +36 -0
- data/lib/hextech/league.rb +27 -0
- data/lib/hextech/mixins/argument_checks.rb +13 -0
- data/lib/hextech/mixins/callable.rb +17 -0
- data/lib/hextech/mixins/transform_keys.rb +63 -0
- data/lib/hextech/response.rb +43 -0
- data/lib/hextech/send_request.rb +43 -0
- data/lib/hextech/valorant/response/status.rb +67 -0
- data/lib/hextech/valorant/status.rb +38 -0
- data/lib/hextech/valorant.rb +4 -0
- data/lib/hextech/version.rb +5 -0
- data/lib/hextech.rb +19 -0
- metadata +265 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class Champions < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :version, Types::String
|
9
|
+
attribute :id, Types::String
|
10
|
+
attribute :key, Types::String
|
11
|
+
attribute :name, Types::String
|
12
|
+
attribute :title, Types::String
|
13
|
+
attribute :blurb, Types::String
|
14
|
+
|
15
|
+
attribute :info do
|
16
|
+
attribute :attack, Types::Integer
|
17
|
+
attribute :defense, Types::Integer
|
18
|
+
attribute :magic, Types::Integer
|
19
|
+
attribute :difficulty, Types::Integer
|
20
|
+
end
|
21
|
+
|
22
|
+
attribute :image do
|
23
|
+
attribute :full, Types::String
|
24
|
+
attribute :sprite, Types::String
|
25
|
+
attribute :group, Types::String
|
26
|
+
attribute :x, Types::Integer
|
27
|
+
attribute :y, Types::Integer
|
28
|
+
attribute :w, Types::Integer
|
29
|
+
attribute :h, Types::Integer
|
30
|
+
end
|
31
|
+
|
32
|
+
attribute :tags, Types::Array
|
33
|
+
attribute :partype, Types::String
|
34
|
+
|
35
|
+
attribute :stats do
|
36
|
+
attribute :hp, Types::Coercible::Float
|
37
|
+
attribute :hpperlevel, Types::Coercible::Float
|
38
|
+
attribute :mp, Types::Coercible::Float
|
39
|
+
attribute :mpperlevel, Types::Coercible::Float
|
40
|
+
attribute :movespeed, Types::Coercible::Float
|
41
|
+
attribute :armor, Types::Coercible::Float
|
42
|
+
attribute :armorperlevel, Types::Coercible::Float
|
43
|
+
attribute :spellblock, Types::Coercible::Float
|
44
|
+
attribute :spellblockperlevel, Types::Coercible::Float
|
45
|
+
attribute :attackrange, Types::Coercible::Float
|
46
|
+
attribute :hpregen, Types::Coercible::Float
|
47
|
+
attribute :hpregenperlevel, Types::Coercible::Float
|
48
|
+
attribute :mpregen, Types::Coercible::Float
|
49
|
+
attribute :mpregenperlevel, Types::Coercible::Float
|
50
|
+
attribute :crit, Types::Coercible::Float
|
51
|
+
attribute :critperlevel, Types::Coercible::Float
|
52
|
+
attribute :attackdamage, Types::Coercible::Float
|
53
|
+
attribute :attackdamageperlevel, Types::Coercible::Float
|
54
|
+
attribute :attackspeedperlevel, Types::Coercible::Float
|
55
|
+
attribute :attackspeed, Types::Coercible::Float
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
module Clash
|
7
|
+
class Player < Hextech::BaseStruct
|
8
|
+
|
9
|
+
attribute :position, Types::String
|
10
|
+
attribute :role, Types::String
|
11
|
+
attribute :summoner_id, Types::Integer
|
12
|
+
attribute :team_id, Types::Integer
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
module Clash
|
7
|
+
class Team < Hextech::BaseStruct
|
8
|
+
|
9
|
+
attribute :id, Types::String
|
10
|
+
attribute :tournament_id, Types::Integer
|
11
|
+
attribute :name, Types::String
|
12
|
+
attribute :icon_id, Types::Integer
|
13
|
+
attribute :tier, Types::Integer
|
14
|
+
attribute :captain, Types::String
|
15
|
+
attribute :abbreviation, Types::String
|
16
|
+
|
17
|
+
attribute :players, Types::Array do
|
18
|
+
attribute :summoner_id, Types::String
|
19
|
+
attribute :position, Types::String
|
20
|
+
attribute :role, Types::String
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
module Clash
|
7
|
+
class Tournament < Hextech::BaseStruct
|
8
|
+
|
9
|
+
attribute :id, Types::Integer
|
10
|
+
attribute :theme_id, Types::Integer
|
11
|
+
attribute :name_key, Types::String
|
12
|
+
attribute :name_key_secondary, Types::String
|
13
|
+
|
14
|
+
attribute :schedule, Types::Array do
|
15
|
+
attribute :id, Types::Integer
|
16
|
+
attribute :registration_time, CallableTime
|
17
|
+
attribute :start_time, CallableTime
|
18
|
+
attribute :cancelled, Types::Bool
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class FeaturedGames < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :game_list, Types::Array do
|
9
|
+
attribute :game_mode, Types::String
|
10
|
+
attribute :game_length, Types::Integer
|
11
|
+
attribute :map_id, Types::Integer
|
12
|
+
attribute :game_type, Types::String
|
13
|
+
|
14
|
+
attribute :banned_champions, Types::Array do
|
15
|
+
attribute :pick_turn, Types::Integer
|
16
|
+
attribute :champion_id, Types::Integer
|
17
|
+
attribute :team_id, Types::Integer
|
18
|
+
end
|
19
|
+
|
20
|
+
attribute :game_id, Types::Integer
|
21
|
+
|
22
|
+
attribute :observers do
|
23
|
+
attribute :encryption_key, Types::String
|
24
|
+
end
|
25
|
+
|
26
|
+
attribute :game_queue_config_id, Types::Integer
|
27
|
+
attribute :game_start_time, Types::Integer
|
28
|
+
|
29
|
+
attribute :participants, Types::Array do
|
30
|
+
attribute :bot, Types::Bool
|
31
|
+
attribute :spell2_id, Types::Integer
|
32
|
+
attribute :profile_icon_id, Types::Integer
|
33
|
+
attribute :summoner_name, Types::String
|
34
|
+
attribute :champion_id, Types::Integer
|
35
|
+
attribute :team_id, Types::Integer
|
36
|
+
attribute :spell1_id, Types::Integer
|
37
|
+
end
|
38
|
+
|
39
|
+
attribute :platform_id, Types::String
|
40
|
+
end
|
41
|
+
|
42
|
+
attribute :client_refresh_interval, Types::Integer
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class Mastery < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :champion_id, Types::Integer
|
9
|
+
attribute :champion_level, Types::Integer
|
10
|
+
attribute :champion_points, Types::Integer
|
11
|
+
attribute :champion_points_since_last_level, Types::Integer
|
12
|
+
attribute :champion_points_until_next_level, Types::Integer
|
13
|
+
attribute :chest_granted, Types::Bool
|
14
|
+
attribute :last_play_time, CallableTime
|
15
|
+
attribute :summoner_id, Types::String
|
16
|
+
attribute :tokens_earned, Types::Integer
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class Status < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :id, Types::String
|
9
|
+
attribute :incidents, Types::Array
|
10
|
+
attribute :locales, Types::Array
|
11
|
+
attribute :maintenances, Types::Array
|
12
|
+
attribute :name, Types::String
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Response
|
6
|
+
class Summoner < Hextech::BaseStruct
|
7
|
+
|
8
|
+
attribute :account_id, Types::String
|
9
|
+
attribute :id, Types::String
|
10
|
+
attribute :name, Types::String
|
11
|
+
attribute :profile_icon_id, Types::Integer
|
12
|
+
attribute :puuid, Types::String
|
13
|
+
attribute :revision_date, CallableTime
|
14
|
+
attribute :summoner_level, Types::Integer
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Spectator
|
6
|
+
class ActiveGames < Hextech::League::Spectator::Base
|
7
|
+
|
8
|
+
def initialize(summoner_id:, region:)
|
9
|
+
@summoner_id = summoner_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :summoner_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/spectator/v4/active-games/by-summoner/#{summoner_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def response_class
|
24
|
+
Hextech::League::Response::ActiveGames
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Spectator
|
6
|
+
class Base < Hextech::Adapter
|
7
|
+
|
8
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
9
|
+
|
10
|
+
def call
|
11
|
+
validate_collection_for(collection: REGIONS, option: region)
|
12
|
+
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def host
|
19
|
+
"https://#{region}.api.riotgames.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Spectator
|
6
|
+
class FeaturedGames < Hextech::League::Spectator::Base
|
7
|
+
|
8
|
+
def initialize(region:)
|
9
|
+
@region = region
|
10
|
+
|
11
|
+
super()
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :region
|
17
|
+
|
18
|
+
def path
|
19
|
+
'/lol/spectator/v4/featured-games'
|
20
|
+
end
|
21
|
+
|
22
|
+
def response_class
|
23
|
+
Hextech::League::Response::FeaturedGames
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'spectator/base'
|
4
|
+
require_relative 'spectator/active_games'
|
5
|
+
require_relative 'spectator/featured_games'
|
6
|
+
|
7
|
+
module Hextech
|
8
|
+
module League
|
9
|
+
module Spectator
|
10
|
+
class << self
|
11
|
+
|
12
|
+
def active_games(summoner_id:, region: 'euw1')
|
13
|
+
Spectator::ActiveGames.call(summoner_id: summoner_id, region: region)
|
14
|
+
end
|
15
|
+
|
16
|
+
def featured_games(region: 'euw1')
|
17
|
+
Spectator::FeaturedGames.call(region: region)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
class Status < Hextech::Adapter
|
6
|
+
|
7
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
8
|
+
|
9
|
+
def initialize(region: 'euw1')
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
def call
|
16
|
+
validate_collection_for(collection: REGIONS, option: region)
|
17
|
+
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :region
|
24
|
+
|
25
|
+
def host
|
26
|
+
"https://#{region}.api.riotgames.com"
|
27
|
+
end
|
28
|
+
|
29
|
+
def path
|
30
|
+
'/lol/status/v4/platform-data'
|
31
|
+
end
|
32
|
+
|
33
|
+
def response_class
|
34
|
+
Hextech::League::Response::Status
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Summoner
|
6
|
+
class Base < Hextech::Adapter
|
7
|
+
|
8
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
9
|
+
|
10
|
+
def call
|
11
|
+
validate_collection_for(collection: REGIONS, option: region)
|
12
|
+
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def host
|
19
|
+
"https://#{region}.api.riotgames.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
def response_class
|
23
|
+
Hextech::League::Response::Summoner
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Summoner
|
6
|
+
class ByAccountId < Hextech::League::Summoner::Base
|
7
|
+
|
8
|
+
def initialize(account_id:, region:)
|
9
|
+
@account_id = account_id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :account_id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/summoner/v4/summoners/by-account/#{account_id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Summoner
|
6
|
+
class ByPuuid < Hextech::League::Summoner::Base
|
7
|
+
|
8
|
+
def initialize(puuid:, region:)
|
9
|
+
@puuid = puuid
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :puuid, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/summoner/v4/summoners/by-puuid/#{puuid}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Summoner
|
6
|
+
class BySummonerId < Hextech::League::Summoner::Base
|
7
|
+
|
8
|
+
def initialize(id:, region:)
|
9
|
+
@id = id
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :id, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/summoner/v4/summoners/#{id}"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
module Summoner
|
6
|
+
class BySummonerName < Hextech::League::Summoner::Base
|
7
|
+
|
8
|
+
def initialize(name:, region:)
|
9
|
+
@name = name
|
10
|
+
@region = region
|
11
|
+
|
12
|
+
super()
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :name, :region
|
18
|
+
|
19
|
+
def path
|
20
|
+
"/lol/summoner/v4/summoners/by-name/#{clean_name}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def clean_name
|
24
|
+
ERB::Util.url_encode(name)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'summoner/base'
|
4
|
+
require_relative 'summoner/by_account_id'
|
5
|
+
require_relative 'summoner/by_summoner_name'
|
6
|
+
require_relative 'summoner/by_puuid'
|
7
|
+
require_relative 'summoner/by_summoner_id'
|
8
|
+
|
9
|
+
module Hextech
|
10
|
+
module League
|
11
|
+
module Summoner
|
12
|
+
class << self
|
13
|
+
|
14
|
+
def by_account_id(account_id:, region: 'euw1')
|
15
|
+
Summoner::ByAccountId.call(account_id: account_id, region: region)
|
16
|
+
end
|
17
|
+
|
18
|
+
def by_id(id:, region: 'euw1')
|
19
|
+
Summoner::BySummonerId.call(id: id, region: region)
|
20
|
+
end
|
21
|
+
|
22
|
+
def by_name(name:, region: 'euw1')
|
23
|
+
Summoner::BySummonerName.call(name: name, region: region)
|
24
|
+
end
|
25
|
+
|
26
|
+
def by_puuid(puuid:, region: 'euw1')
|
27
|
+
Summoner::ByPuuid.call(puuid: puuid, region: region)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module League
|
5
|
+
class ThirdPartyCode < Hextech::Adapter
|
6
|
+
|
7
|
+
REGIONS = %w[euw1 eun1 na1 oc1 kr br1 tr1 la2 la1 ru jp1].freeze
|
8
|
+
|
9
|
+
def initialize(summoner_id:, region: 'euw1')
|
10
|
+
@summoner_id = summoner_id
|
11
|
+
@region = region
|
12
|
+
|
13
|
+
super()
|
14
|
+
end
|
15
|
+
|
16
|
+
def call
|
17
|
+
validate_collection_for(collection: REGIONS, option: region)
|
18
|
+
|
19
|
+
super
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
attr_reader :summoner_id, :region
|
25
|
+
|
26
|
+
def host
|
27
|
+
"https://#{region}.api.riotgames.com"
|
28
|
+
end
|
29
|
+
|
30
|
+
def path
|
31
|
+
"/lol/platform/v4/third-party-code/by-summoner/#{summoner_id}"
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'league/response/champion_rotation'
|
4
|
+
require_relative 'league/response/champions'
|
5
|
+
|
6
|
+
require_relative 'league/response/clash/player'
|
7
|
+
require_relative 'league/response/clash/team'
|
8
|
+
require_relative 'league/response/clash/tournament'
|
9
|
+
|
10
|
+
require_relative 'league/response/mastery'
|
11
|
+
require_relative 'league/response/status'
|
12
|
+
|
13
|
+
require_relative 'league/response/active_games'
|
14
|
+
require_relative 'league/response/featured_games'
|
15
|
+
|
16
|
+
require_relative 'league/response/summoner'
|
17
|
+
|
18
|
+
require_relative 'league/champion_rotation'
|
19
|
+
require_relative 'league/champions'
|
20
|
+
require_relative 'league/clash'
|
21
|
+
require_relative 'league/mastery'
|
22
|
+
require_relative 'league/match'
|
23
|
+
require_relative 'league/patches'
|
24
|
+
require_relative 'league/status'
|
25
|
+
require_relative 'league/summoner'
|
26
|
+
require_relative 'league/spectator'
|
27
|
+
require_relative 'league/third_party_code'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Hextech
|
4
|
+
module Mixins
|
5
|
+
module ArgumentChecks
|
6
|
+
def validate_collection_for(collection:, option:)
|
7
|
+
return if collection.empty? || collection.include?(option)
|
8
|
+
|
9
|
+
raise Hextech::InvalidArgument, "Invalid argument: must be one of #{collection.join(', ')}."
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|