blizzard_api 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a7115f7058b188e0130c206c24aad91ee0ffccfb1b5af117c7df1e1ad057576
4
- data.tar.gz: 5673b1e4e632d76244c8315a217b9a4ee6a55555159bc0fbcf134a09d7a191e1
3
+ metadata.gz: 98dfa44fc3124d09b6f7d748b9177f4fa4db78b75824f9c5643b3b4ec9ebd6b9
4
+ data.tar.gz: 04fc32625fc155c3b2d187ea0db9d79427d902b67783b79684efc2023a29462c
5
5
  SHA512:
6
- metadata.gz: f779ae48590fe9fe5ecae0ab0004528a9600390c0f6862da2f52a9fd8f2c31351fa6945adfe5ee67a52df14437dee3d1da1e5a0df8bb5b6b6db1c402521ba2ec
7
- data.tar.gz: 307e0b9549d87b2fee99c832854398948a37cf414acc8103b8e733532e1d4faab7f94c870e67959e42bea941d42c3f4a9435d92542becaac8d10b934a81d53e6
6
+ metadata.gz: 1d601c0591eb90072a937cc860e2fb5e8e42c0fc72d795207188156a7df40f17187e40604d4acc3f187c75d4ae82ce55bfd2cf1212f3311e2205500a8da01ff6
7
+ data.tar.gz: 768023a73f05b338e6c03c57ba918ede8b3aa16a7f2aefa5ec61e3c4f1025e4f42c2242fdddf08a4e0559f46e86cfe25dde955ccb3c3611b62712e031ad83e2f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  Please view this file on the master branch, otherwise it may be outdated
2
2
 
3
+ **Version 0.3.6**
4
+
5
+ Fix Diablo shortcuts.
6
+ Adding SC2 endpoints back.
7
+
8
+ https://us.forums.blizzard.com/en/blizzard/t/starcraft-ii-community-api-update/2652/5
9
+
3
10
  **Version 0.3.5**
4
11
 
5
12
  Fixed a bug for generating slugs for Korean
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- blizzard_api (0.3.5)
4
+ blizzard_api (0.3.6)
5
5
  redis (~> 4.1, >= 4.1.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -16,6 +16,7 @@ This gem allow you to interface with the new blizzard api (2018) using the OAuth
16
16
  - 4.1. [World of Warcraft endpoints](#41-world-of-warcraft-endpoints)
17
17
  - 4.2. [Diablo III endpoints](#42-diablo-iii-endpoints)
18
18
  - 4.3. [Hearthstone endpoints](#43-hearthstone-endpoints)
19
+ - 4.4. [Starcraft II endpoints](#43-starcraft-ii-endpoints)
19
20
 
20
21
  ## 1. Installation
21
22
 
@@ -284,6 +285,24 @@ Most **data** endpoints will have always 3 methods available `index`, `get` and
284
285
  * BlizzardApi::Hearthstone::Metadata
285
286
  - index
286
287
  - get :type
288
+
289
+ ### 4.4. Starcraft II endpoints
290
+
291
+ Every endpoint requiring a *region_id* parameter will accepts either the integer representation of the region described in the api docs or a symbol: `:US`, `:EU`, `:KO` or `:TW`
292
+
293
+ * BlizzardApi::Starcraft::League
294
+ - get :season_id, :queue_id, :team_type, :league_id
295
+ * BlizzardApi::Starcraft::Profile
296
+ - static :region_id
297
+ - metadata :region_id, :realm_id, :profile_id
298
+ - profile :region_id, :realm_id, :profile_id
299
+ - ladder_summary :region_id, :realm_id, :profile_id
300
+ - ladder :region_id, :realm_id, :profile_id, :ladder_id
301
+ * BlizzardApi::Starcraft::Ladder
302
+ - grandmaster :region_id, :options
303
+ - season :region_id
304
+ * BlizzardApi::Starcraft::Account
305
+ - player :account_id
287
306
 
288
307
  ## Contributing
289
308
 
data/lib/blizzard_api.rb CHANGED
@@ -7,6 +7,7 @@ require_relative 'blizzard_api/version'
7
7
  require_relative 'blizzard_api/wow'
8
8
  require_relative 'blizzard_api/diablo'
9
9
  require_relative 'blizzard_api/hearthstone'
10
+ require_relative 'blizzard_api/starcraft'
10
11
 
11
12
  # Blizzard namespace
12
13
  module BlizzardApi
@@ -12,13 +12,13 @@ module BlizzardApi
12
12
 
13
13
  ##
14
14
  # @return {Season}
15
- def season
15
+ def self.season
16
16
  BlizzardApi::Diablo::Season.new
17
17
  end
18
18
 
19
19
  ##
20
20
  # @return {Era}
21
- def era
21
+ def self.era
22
22
  BlizzardApi::Diablo::Era.new
23
23
  end
24
24
 
@@ -33,43 +33,43 @@ module BlizzardApi
33
33
 
34
34
  ##
35
35
  # @return {Act}
36
- def act
36
+ def self.act
37
37
  BlizzardApi::Diablo::Act.new
38
38
  end
39
39
 
40
40
  ##
41
41
  # @return {Artisan}
42
- def artisan
42
+ def self.artisan
43
43
  BlizzardApi::Diablo::Artisan.new
44
44
  end
45
45
 
46
46
  ##
47
47
  # @return {Follower}
48
- def follower
48
+ def self.follower
49
49
  BlizzardApi::Diablo::Follower.new
50
50
  end
51
51
 
52
52
  ##
53
53
  # @return {Character}
54
- def character
54
+ def self.character
55
55
  BlizzardApi::Diablo::Character.new
56
56
  end
57
57
 
58
58
  ##
59
59
  # @return {ItemType}
60
- def item_type
60
+ def self.item_type
61
61
  BlizzardApi::Diablo::ItemType.new
62
62
  end
63
63
 
64
64
  ##
65
65
  # @return {Type}
66
- def item
66
+ def self.item
67
67
  BlizzardApi::Diablo::Item.new
68
68
  end
69
69
 
70
70
  ##
71
71
  # @return {Profile}
72
- def profile
72
+ def self.profile
73
73
  BlizzardApi::Diablo::Profile.new
74
74
  end
75
75
  end
@@ -22,7 +22,7 @@ module BlizzardApi
22
22
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
23
23
  def index(battletag, oauth_token, options = {})
24
24
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
25
- api_request "#{base_url(:community)}/data/profile/#{battletag}", opts
25
+ api_request "#{base_url(:community)}/data/profile/#{parse_battle_tag(battletag)}", opts
26
26
  end
27
27
 
28
28
  ##
@@ -38,7 +38,7 @@ module BlizzardApi
38
38
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
39
39
  def hero(battletag, oauth_token, hero_id, options = {})
40
40
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
41
- api_request "#{base_url(:community)}/data/profile/#{battletag}/hero/#{hero_id}", opts
41
+ api_request "#{base_url(:community)}/data/profile/#{parse_battle_tag(battletag)}/hero/#{hero_id}", opts
42
42
  end
43
43
 
44
44
  ##
@@ -54,7 +54,7 @@ module BlizzardApi
54
54
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
55
55
  def hero_items(battletag, oauth_token, hero_id, options = {})
56
56
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
57
- api_request "#{base_url(:community)}/data/profile/#{battletag}/hero/#{hero_id}/items", opts
57
+ api_request "#{base_url(:community)}/data/profile/#{parse_battle_tag(battletag)}/hero/#{hero_id}/items", opts
58
58
  end
59
59
 
60
60
  ##
@@ -70,7 +70,13 @@ module BlizzardApi
70
70
  # @see https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow
71
71
  def hero_follower_items(battletag, oauth_token, hero_id, options = {})
72
72
  opts = { access_token: oauth_token, ttl: CACHE_TRIMESTER }.merge(options)
73
- api_request "#{base_url(:community)}/data/profile/#{battletag}/hero/#{hero_id}/follower-items", opts
73
+ api_request "#{base_url(:community)}/data/profile/#{parse_battle_tag(battletag)}/hero/#{hero_id}/follower-items", opts
74
+ end
75
+
76
+ private
77
+
78
+ def parse_battle_tag(battletag)
79
+ battletag.sub('#', '-')
74
80
  end
75
81
  end
76
82
  end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ # Starcraft II related classes
5
+ module Starcraft
6
+ require_relative 'starcraft/request'
7
+
8
+ # Starcraft II data api
9
+ require_relative 'starcraft/game_data/league'
10
+
11
+ ##
12
+ # @return {League}
13
+ def self.league
14
+ BlizzardApi::Starcraft::League.new
15
+ end
16
+
17
+ # Starcraft community api
18
+ require_relative 'starcraft/community/profile'
19
+ require_relative 'starcraft/community/ladder'
20
+ require_relative 'starcraft/community/account'
21
+
22
+ ##
23
+ # @return {Profile}
24
+ def self.profile
25
+ BlizzardApi::Starcraft::Profile.new
26
+ end
27
+
28
+ ##
29
+ # @return {Ladder}
30
+ def self.ladder
31
+ BlizzardApi::Starcraft::Ladder.new
32
+ end
33
+
34
+ ##
35
+ # @return {Account}
36
+ def self.account
37
+ BlizzardApi::Starcraft::Account.new
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Starcraft
5
+ ##
6
+ # This class allows access to Starcraft II league data
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/starcraft-2-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Starcraft.account
12
+ class Account < Starcraft::Request
13
+ ##
14
+ # Returns information about a player account
15
+ #
16
+ # @param [Integer] account_id Account ID
17
+ # @!macro request_options
18
+ def player(account_id, options = {})
19
+ api_request "#{base_url(:community)}/player/#{account_id}", { ttl: CACHE_DAY }.merge(options)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Starcraft
5
+ ##
6
+ # This class allows access to Starcraft II ladder data
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/starcraft-2-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Starcraft.ladder
12
+ class Ladder < Starcraft::Request
13
+ ##
14
+ # Grandmaster endpoint
15
+ #
16
+ # @!macro sc2_regions
17
+ # @!macro request_options
18
+ def grandmaster(region_id, options = {})
19
+ reg = resolve_region(region_id)
20
+ api_request "#{base_url(:community)}/ladder/grandmaster/#{reg}", { ttl: CACHE_DAY }.merge(options)
21
+ end
22
+
23
+ ##
24
+ # Season endpoint
25
+ #
26
+ # @!macro sc2_regions
27
+ # @!macro request_options
28
+ def season(region_id, options = {})
29
+ reg = resolve_region(region_id)
30
+ api_request "#{base_url(:community)}/ladder/season/#{reg}", { ttl: CACHE_DAY }.merge(options)
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Starcraft
5
+ ##
6
+ # This class allows access to Starcraft II profile data
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/starcraft-2-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Starcraft.profile
12
+ class Profile < Starcraft::Request
13
+ ##
14
+ # Static profile data
15
+ #
16
+ # @!macro sc2_regions
17
+ # @!macro request_options
18
+ def static(region_id, options = {})
19
+ reg = resolve_region(region_id)
20
+ api_request "#{base_url(:community)}/static/profile/#{reg}", { ttl: CACHE_DAY }.merge(options)
21
+ end
22
+
23
+ ##
24
+ # Metadata
25
+ #
26
+ # @!macro sc2_regions
27
+ # @param [Integer] realm_id Realm ID
28
+ # @param [Integer] profile_id Profile ID
29
+ # @!macro request_options
30
+ def metadata(region_id, realm_id, profile_id, options = {})
31
+ reg = resolve_region(region_id)
32
+ opts = { ttl: CACHE_DAY }.merge(options)
33
+ api_request "#{base_url(:community)}/metadata/profile/#{reg}/#{realm_id}/#{profile_id}", opts
34
+ end
35
+
36
+ ##
37
+ # Profile data
38
+ #
39
+ # @!macro sc2_regions
40
+ # @param [Integer] realm_id Realm ID
41
+ # @param [Integer] profile_id Profile ID
42
+ # @!macro request_options
43
+ def profile(region_id, realm_id, profile_id, options = {})
44
+ reg = resolve_region(region_id)
45
+ opts = { ttl: CACHE_DAY }.merge(options)
46
+ api_request "#{base_url(:community)}/profile/#{reg}/#{realm_id}/#{profile_id}", opts
47
+ end
48
+
49
+ ##
50
+ # Ladder summary
51
+ #
52
+ # @!macro sc2_regions
53
+ # @param [Integer] realm_id Realm ID
54
+ # @param [Integer] profile_id Profile ID
55
+ # @!macro request_options
56
+ def ladder_summary(region_id, realm_id, profile_id, options = {})
57
+ reg = resolve_region(region_id)
58
+ opts = { ttl: CACHE_DAY }.merge(options)
59
+ api_request "#{base_url(:community)}profile/#{reg}/#{realm_id}/#{profile_id}/ladder/summary ", opts
60
+ end
61
+
62
+ ##
63
+ # Ladder data
64
+ #
65
+ # @!macro sc2_regions
66
+ # @param [Integer] realm_id Realm ID
67
+ # @param [Integer] profile_id Profile ID
68
+ # @!macro request_options
69
+ def ladder(region_id, realm_id, profile_id, ladder_id, options = {})
70
+ reg = resolve_region(region_id)
71
+ opts = { ttl: CACHE_DAY }.merge(options)
72
+ api_request "#{base_url(:community)}/profile/#{reg}/#{realm_id}/#{profile_id}/ladder/#{ladder_id}", opts
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BlizzardApi
4
+ module Starcraft
5
+ ##
6
+ # This class allows access to Starcraft II league data
7
+ #
8
+ # @see https://develop.battle.net/documentation/api-reference/starcraft-2-game-data-api
9
+ #
10
+ # You can get an instance of this class using the default region as follows:
11
+ # api_instance = BlizzardApi::Starcraft.league
12
+ class League < Starcraft::Request
13
+ ##
14
+ # Return information about league
15
+ #
16
+ # @param [Integer] season_id Season id
17
+ # @param [Integer] queue_id Queue id
18
+ # @param [Integer] team_type Team type
19
+ # @param [Integer] league_id League id
20
+ # @!macro request_options
21
+ def get(season_id, queue_id, team_type, league_id, options = {})
22
+ opts = { ttl: CACHE_DAY }.merge(options)
23
+ api_request "#{base_url(:game_data)}/league/#{season_id}/#{queue_id}/#{team_type}/#{league_id}", opts
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # @!macro [new] sc2_regions
5
+ # @param {Symbol} region_id One of the valid Starcraft II regions *:US*, *:EU*, *:KO*, and *:TW*
6
+ # @note This gem do not support nor will support China endpoints
7
+
8
+ module BlizzardApi
9
+ module Starcraft
10
+ ##
11
+ # Starcraft requests
12
+ class Request < BlizzardApi::Request
13
+ # Possible regions for the SC II API (Except China)
14
+ SC_REGION = { US: 1, EU: 2, KO: 3, TW: 3 }.freeze
15
+
16
+ ##
17
+ # @!macro regions
18
+ def initialize(region = nil)
19
+ super region
20
+ @game = 'sc2'
21
+ end
22
+
23
+ private
24
+
25
+ ##
26
+ # Helper method to find a region_id by its symbol
27
+ def resolve_region(region_arg)
28
+ return region_arg if region_arg.is_a? Integer
29
+
30
+ return SC_REGION[region_arg] if region_arg.is_a? Symbol
31
+
32
+ raise ArgumentError, 'Invalid region, please read the documentation'
33
+ end
34
+ end
35
+ end
36
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module BlizzardApi
4
4
  # Gem version
5
- VERSION = '0.3.5'
5
+ VERSION = '0.3.6'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blizzard_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francis Schiavo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-20 00:00:00.000000000 Z
11
+ date: 2020-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -115,6 +115,12 @@ files:
115
115
  - lib/blizzard_api/hearthstone/game_data/metadata.rb
116
116
  - lib/blizzard_api/hearthstone/request.rb
117
117
  - lib/blizzard_api/request.rb
118
+ - lib/blizzard_api/starcraft.rb
119
+ - lib/blizzard_api/starcraft/community/account.rb
120
+ - lib/blizzard_api/starcraft/community/ladder.rb
121
+ - lib/blizzard_api/starcraft/community/profile.rb
122
+ - lib/blizzard_api/starcraft/game_data/league.rb
123
+ - lib/blizzard_api/starcraft/request.rb
118
124
  - lib/blizzard_api/version.rb
119
125
  - lib/blizzard_api/wow.rb
120
126
  - lib/blizzard_api/wow/game_data/achievement.rb