hextech 1.0.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 +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
|