SWGOH-API 0.3.19 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ab79511050879440c37f9a3bb2d9d8536d4388953fe2cdbc15b6b99fe563cb1
4
- data.tar.gz: 323a779049f568c2ee3d710bc471bccd4f1234095d935b2e1205c72a9c702c85
3
+ metadata.gz: '08c450a93858d8f9ecad0bee9c8fb33c84b779d29aa5a750e535261b5e869fb5'
4
+ data.tar.gz: 4f86c4f8f9512351227f8e428dabf39992ca1ebdd449be3b9938ee8fdfc3ae60
5
5
  SHA512:
6
- metadata.gz: 2cce68fb87a9e43fbd7f310b3cad0aeeab0a4e6c4f471d7f6aa8efe1195a7b2462bd89feb5f9a437512d8f824f45302c380f7cb25f5e28a2d49abc5c2cc788c4
7
- data.tar.gz: c0adfc835eb04a633d59a837ea525110717400028d1f3337349804b5d64366f0a411fea4c93aa031b984cc0e7cf7f43e4af64bc45b6bdc9b3b89f8c84a3f4027
6
+ metadata.gz: f25e29323f14dab0e2fdb93fa67e8583d23a955f557622670c32242a1d148477cf7ada91420ae23148c8419183470f092eb776366fb7d442c959c0d1b2c85b7d
7
+ data.tar.gz: 5e766736283e5e0430b0dafeeb6ed6b2cd2f9f95ce0dc7d406d2b8c979a193cfbd3510c4d9aece83164ba76aea93bbce18dca3b8d73665e9fed45b73af887544
@@ -2,7 +2,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2
2
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
3
3
 
4
4
  ## [Unreleased]
5
- N/A
5
+
6
+ ## [0.4.0] - 2020-10-16
7
+ ## Added
8
+ - Added methods to make requests to the data endpoint by [@jquass](https://github.com/jquass)
9
+ - Added client data endpoint unit tests by [@jquass](https://github.com/jquass)
10
+ - Added project param by [@jquass](https://github.com/jquass)
11
+ ## Changed
12
+ - Removed ally_codes param from get_zetas and changed name to zetas by [@jquass](https://github.com/jquass)
13
+ - Removed ally_codes param from get_squads and changed name to squads by [@jquass](https://github.com/jquass)
14
+ - Removed ally_codes param from get_events and changed name to events by [@jquass](https://github.com/jquass)
15
+ - Removed ally_codes param from get_battles and changed name to battles by [@jquass](https://github.com/jquass)
16
+ - Renamed get_players to players by [@jquass](https://github.com/jquass)
17
+ - Renamed get_guilds to guilds by [@jquass](https://github.com/jquass)
18
+ - Renamed get_rosters to rosters by [@jquass](https://github.com/jquass)
19
+ - Renamed get_units to units by [@jquass](https://github.com/jquass)
6
20
 
7
21
  ## [0.3.19] - 2020-10-16
8
22
  ## Changed
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- SWGOH-API (0.3.19)
4
+ SWGOH-API (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -33,13 +33,15 @@ json = client.get_players([123456789])
33
33
 
34
34
  ## Development
35
35
 
36
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests.
36
+ After checking out the repo, run `bin/setup` to install dependencies.
37
37
 
38
- To install this gem onto your local machine, run `gem install 'SWGOH-API'`.
38
+ To build your changes, run `gem build SWGOH-API.gemspec`
39
+
40
+ To install the build onto your local machine, run `gem install 'SWGOH-API'`.
39
41
 
40
42
  ### irb
41
43
  ```
42
- $ irb -rubygems
44
+ $ irb
43
45
  irb(main):001:0> require 'SWGOH/API/CLIENT/client'
44
46
  => true
45
47
  irb(main):002:0> client = CLIENT.new
@@ -52,15 +54,19 @@ irb(main):005:0> client.authorized?
52
54
  => true
53
55
  ```
54
56
 
57
+ ### Unit Tests
58
+
59
+ Run `rake test` to run the unit tests.
60
+
55
61
  ### Release
56
62
  These are the steps to create and tag a new version, push git commits and tags, and push the new gem version to [rubygems.org](https://rubygems.org).
57
63
 
58
64
  - Update the CHANGELOG and assign version number
59
65
  - Update the version number in `version.rb`
60
- - Run `gem build SWGOH-API.gemspec`
61
- - Run the release to generate all files `bundle exec rake release`
66
+ - Run `gem build SWGOH-API.gemspec` to build the new gem version
67
+ - Run the release once to generate all files to commit `bundle exec rake release`
62
68
  - Create a new version commit with all changes
63
- - Release the new version `bundle exec rake release`
69
+ - Release the new version `bundle exec rake release`
64
70
 
65
71
  ## Contributing
66
72
 
@@ -36,5 +36,40 @@ module SWGOH
36
36
  THA_TH = 'THA_TH'
37
37
  TUR_TR = 'TUR_TR'
38
38
  end
39
+
40
+ module COLLECTION
41
+ ABILITY = 'abilityList'
42
+ BATTLE_ENVIRONMENT = 'battleEnvironmentsList'
43
+ BATTLE_TARGETING_RULE = 'battleTargetingRuleList'
44
+ CATEGORY = 'categoryList'
45
+ CHALLENGE = 'challengeList'
46
+ CHALLENGE_STYLE = 'challengeStyleList'
47
+ EFFECT = 'effectList'
48
+ ENVIRONMENT_COLLECTION = 'environmentCollectionList'
49
+ EQUIPMENT = 'equipmentList'
50
+ EVENT_SAMPLING = 'eventSamplingList'
51
+ GUILD_EXCHANGE_ITEM = 'guildExchangeItemList'
52
+ GUILD_RAID = 'guildRaidList'
53
+ HELP_ENTRY = 'helpEntryList'
54
+ MATERIAL = 'materialList'
55
+ PLAYER_TITLE = 'playerTitleList'
56
+ POWER_UP_BUNDLE = 'powerUpBundleList'
57
+ RAID_CONFIG = 'raidConfigList'
58
+ RECIPE = 'recipeList'
59
+ REQUIREMENT = 'requirementList'
60
+ SKILL = 'skillList'
61
+ STARTER_GUILD = 'starterGuildList'
62
+ STAT_MOD = 'statModList'
63
+ STAT_MOD_SET = 'statModSetList'
64
+ STAT_PROGRESSION = 'statProgressionList'
65
+ TABLE = 'tableList'
66
+ TARGETING_SET = 'targetingSetList'
67
+ TERRITORY_BATTLE_DEFINITION = 'territoryBattleDefinitionList'
68
+ TERRITORY_WAR_DEFINITION = 'territoryWarDefinitionList'
69
+ UNIT = 'unitsList'
70
+ UNLOCK_ANNOUNCEMENT_DEFINITION = 'unlockAnnouncementDefinitionList'
71
+ WAR_DEFINITION = 'warDefinitionList'
72
+ XP_TABLE = 'xpTableList'
73
+ end
39
74
  end
40
75
  end
@@ -7,7 +7,7 @@ require 'json'
7
7
 
8
8
  # The CLIENT class makes requests to api.swgoh.api
9
9
  class CLIENT
10
- attr_accessor :language, :enums, :structure
10
+ attr_accessor :language, :enums, :structure, :project
11
11
  attr_writer :access_token
12
12
 
13
13
  def initialize
@@ -15,6 +15,7 @@ class CLIENT
15
15
  @enums = false
16
16
  @structure = false
17
17
  @access_token = nil
18
+ @project = nil
18
19
  end
19
20
 
20
21
  # @return [Boolean]
@@ -36,69 +37,258 @@ class CLIENT
36
37
 
37
38
  # @param [Array] ally_codes
38
39
  # @return [JSON || nil]
39
- def get_players(ally_codes)
40
- request(SWGOH::API::PATH::PLAYER, ally_codes)
40
+ def players(ally_codes)
41
+ ally_codes_request(SWGOH::API::PATH::PLAYER, ally_codes)
41
42
  end
42
43
 
43
44
  # @param [Array] ally_codes
44
45
  # @return [JSON || nil]
45
- def get_guilds(ally_codes)
46
- request(SWGOH::API::PATH::GUILD, ally_codes)
46
+ def guilds(ally_codes)
47
+ ally_codes_request(SWGOH::API::PATH::GUILD, ally_codes)
47
48
  end
48
49
 
49
50
  # @param [Array] ally_codes
50
51
  # @return [JSON || nil]
51
- def get_rosters(ally_codes)
52
- request(SWGOH::API::PATH::ROSTER, ally_codes)
52
+ def rosters(ally_codes)
53
+ ally_codes_request(SWGOH::API::PATH::ROSTER, ally_codes)
53
54
  end
54
55
 
55
56
  # @param [Array] ally_codes
56
57
  # @return [JSON || nil]
57
- def get_units(ally_codes)
58
- request(SWGOH::API::PATH::UNITS, ally_codes)
58
+ def units(ally_codes)
59
+ ally_codes_request(SWGOH::API::PATH::UNITS, ally_codes)
59
60
  end
60
61
 
61
- # @param [Array] ally_codes
62
62
  # @return [JSON || nil]
63
- def get_zetas(ally_codes)
64
- request(SWGOH::API::PATH::ZETAS, ally_codes)
63
+ def zetas
64
+ request(SWGOH::API::PATH::ZETAS)
65
65
  end
66
66
 
67
- # @param [Array] ally_codes
68
67
  # @return [JSON || nil]
69
- def get_squads(ally_codes)
70
- request(SWGOH::API::PATH::SQUADS, ally_codes)
68
+ def squads
69
+ request(SWGOH::API::PATH::SQUADS)
71
70
  end
72
71
 
73
- # @param [Array] ally_codes
74
72
  # @return [JSON || nil]
75
- def get_events(ally_codes)
76
- request(SWGOH::API::PATH::EVENTS, ally_codes)
73
+ def events
74
+ request(SWGOH::API::PATH::EVENTS)
75
+ end
76
+
77
+ # @return [JSON || nil]
78
+ def battles
79
+ request(SWGOH::API::PATH::BATTLES)
80
+ end
81
+
82
+ # @return [JSON || nil]
83
+ def abilities
84
+ data_request(SWGOH::API::COLLECTION::ABILITY)
85
+ end
86
+
87
+ # @return [JSON || nil]
88
+ def battle_environments
89
+ data_request(SWGOH::API::COLLECTION::BATTLE_ENVIRONMENT)
90
+ end
91
+
92
+ # @return [JSON || nil]
93
+ def battle_targeting_rules
94
+ data_request(SWGOH::API::COLLECTION::BATTLE_TARGETING_RULE)
95
+ end
96
+
97
+ # @return [JSON || nil]
98
+ def categories
99
+ data_request(SWGOH::API::COLLECTION::CATEGORY)
100
+ end
101
+
102
+ # @return [JSON || nil]
103
+ def challenges
104
+ data_request(SWGOH::API::COLLECTION::CHALLENGE)
105
+ end
106
+
107
+ # @return [JSON || nil]
108
+ def challenge_styles
109
+ data_request(SWGOH::API::COLLECTION::CHALLENGE_STYLE)
110
+ end
111
+
112
+ # @return [JSON || nil]
113
+ def effects
114
+ data_request(SWGOH::API::COLLECTION::EFFECT)
115
+ end
116
+
117
+ # @return [JSON || nil]
118
+ def environment_collections
119
+ data_request(SWGOH::API::COLLECTION::ENVIRONMENT_COLLECTION)
120
+ end
121
+
122
+ # @return [JSON || nil]
123
+ def equipment
124
+ data_request(SWGOH::API::COLLECTION::EQUIPMENT)
125
+ end
126
+
127
+ # @return [JSON || nil]
128
+ def event_samples
129
+ data_request(SWGOH::API::COLLECTION::EVENT_SAMPLING)
130
+ end
131
+
132
+ # @return [JSON || nil]
133
+ def guild_exchange_items
134
+ data_request(SWGOH::API::COLLECTION::GUILD_EXCHANGE_ITEM)
135
+ end
136
+
137
+ # @return [JSON || nil]
138
+ def guild_raids
139
+ data_request(SWGOH::API::COLLECTION::GUILD_RAID)
140
+ end
141
+
142
+ # @return [JSON || nil]
143
+ def help_entries
144
+ data_request(SWGOH::API::COLLECTION::HELP_ENTRY)
145
+ end
146
+
147
+ # @return [JSON || nil]
148
+ def materials
149
+ data_request(SWGOH::API::COLLECTION::MATERIAL)
150
+ end
151
+
152
+ # @return [JSON || nil]
153
+ def player_titles
154
+ data_request(SWGOH::API::COLLECTION::PLAYER_TITLE)
155
+ end
156
+
157
+ # @return [JSON || nil]
158
+ def power_up_bundles
159
+ data_request(SWGOH::API::COLLECTION::POWER_UP_BUNDLE)
160
+ end
161
+
162
+ # @return [JSON || nil]
163
+ def raid_configs
164
+ data_request(SWGOH::API::COLLECTION::RAID_CONFIG)
165
+ end
166
+
167
+ # @return [JSON || nil]
168
+ def recipes
169
+ data_request(SWGOH::API::COLLECTION::RECIPE)
170
+ end
171
+
172
+ # @return [JSON || nil]
173
+ def requirements
174
+ data_request(SWGOH::API::COLLECTION::REQUIREMENT)
175
+ end
176
+
177
+ # @return [JSON || nil]
178
+ def skills
179
+ data_request(SWGOH::API::COLLECTION::SKILL)
180
+ end
181
+
182
+ # @return [JSON || nil]
183
+ def starter_guilds
184
+ data_request(SWGOH::API::COLLECTION::STARTER_GUILD)
185
+ end
186
+
187
+ # @return [JSON || nil]
188
+ def stat_mods
189
+ data_request(SWGOH::API::COLLECTION::STAT_MOD)
190
+ end
191
+
192
+ # @return [JSON || nil]
193
+ def stat_mod_sets
194
+ data_request(SWGOH::API::COLLECTION::STAT_MOD_SET)
195
+ end
196
+
197
+ # @return [JSON || nil]
198
+ def stat_progressions
199
+ data_request(SWGOH::API::COLLECTION::STAT_PROGRESSION)
200
+ end
201
+
202
+ # @return [JSON || nil]
203
+ def tables
204
+ data_request(SWGOH::API::COLLECTION::TABLE)
205
+ end
206
+
207
+ # @return [JSON || nil]
208
+ def targeting_sets
209
+ data_request(SWGOH::API::COLLECTION::TARGETING_SET)
210
+ end
211
+
212
+ # @return [JSON || nil]
213
+ def territory_battle_definitions
214
+ data_request(SWGOH::API::COLLECTION::TERRITORY_BATTLE_DEFINITION)
215
+ end
216
+
217
+ # @return [JSON || nil]
218
+ def territory_war_definitions
219
+ data_request(SWGOH::API::COLLECTION::TERRITORY_WAR_DEFINITION)
220
+ end
221
+
222
+ # @return [JSON || nil]
223
+ def units_list
224
+ data_request(SWGOH::API::COLLECTION::UNIT)
77
225
  end
78
226
 
79
- # @param [Array] ally_codes
80
227
  # @return [JSON || nil]
81
- def get_battles(ally_codes)
82
- request(SWGOH::API::PATH::BATTLES, ally_codes)
228
+ def unlock_announcement_defs
229
+ data_request(SWGOH::API::COLLECTION::UNLOCK_ANNOUNCEMENT_DEFINITION)
230
+ end
231
+
232
+ # @return [JSON || nil]
233
+ def war_definitions
234
+ data_request(SWGOH::API::COLLECTION::WAR_DEFINITION)
235
+ end
236
+
237
+ # @return [JSON || nil]
238
+ def xp_tables
239
+ data_request(SWGOH::API::COLLECTION::XP_TABLE)
83
240
  end
84
241
 
85
242
  private
86
243
 
87
244
  attr_reader :access_token
88
245
 
246
+ # @param [PATH] path
247
+ # @return [JSON || nil]
248
+ def request(path)
249
+ return unless authorized?
250
+
251
+ uri = URI("https://#{SWGOH::API::PATH::BASE}/#{path}")
252
+ data = request_data
253
+ data[:project] = @project unless @project.nil?
254
+ response = Net::HTTP.post(uri, data.to_json, request_headers)
255
+ return log_error(response) unless response.is_a?(Net::HTTPSuccess)
256
+
257
+ JSON.parse(response.body)
258
+ end
259
+
89
260
  # @param [PATH] path
90
261
  # @param [Array] ally_codes
91
262
  # @return [JSON || nil]
92
- def request(path, ally_codes)
263
+ def ally_codes_request(path, ally_codes)
93
264
  return unless authorized?
94
265
 
95
266
  uri = URI("https://#{SWGOH::API::PATH::BASE}/#{path}")
96
- response = Net::HTTP.post(uri, request_data(ally_codes), request_headers)
267
+ data = request_data
268
+ data[:allyCodes] = ally_codes
269
+ data[:project] = @project unless @project.nil?
270
+ response = Net::HTTP.post(uri, data.to_json, request_headers)
97
271
  return log_error(response) unless response.is_a?(Net::HTTPSuccess)
98
272
 
99
273
  JSON.parse(response.body)
100
274
  end
101
275
 
276
+ # @param [SWGOH::API::PATH::COLLECTION] collection
277
+ # @return [JSON || nil]
278
+ def data_request(collection)
279
+ return unless authorized?
280
+
281
+ uri = URI("https://#{SWGOH::API::PATH::BASE}/#{SWGOH::API::PATH::DATA}")
282
+ data = request_data
283
+ data[:collection] = collection
284
+ data[:project] = @project unless @project.nil?
285
+ response = Net::HTTP.post(uri, data.to_json, request_headers)
286
+ return log_error(response) unless response.is_a?(Net::HTTPSuccess)
287
+
288
+ JSON.parse(response.body)
289
+ end
290
+
291
+ # @return [Hash]
102
292
  def request_headers
103
293
  {
104
294
  Authorization: 'Bearer ' + @access_token,
@@ -106,6 +296,9 @@ class CLIENT
106
296
  }
107
297
  end
108
298
 
299
+ # @param [String] username
300
+ # @param [String] password
301
+ # @return [Hash]
109
302
  def auth_request_form(username, password)
110
303
  {
111
304
  username: username,
@@ -116,14 +309,13 @@ class CLIENT
116
309
  }
117
310
  end
118
311
 
119
- # @return [JSON]
120
- def request_data(ally_codes)
312
+ # @return [Hash]
313
+ def request_data
121
314
  {
122
- allyCodes: ally_codes,
123
315
  language: language,
124
316
  enums: enums,
125
317
  structure: structure
126
- }.to_json
318
+ }
127
319
  end
128
320
 
129
321
  def log_error(result)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SWGOH
4
4
  module API
5
- VERSION = '0.3.19'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: SWGOH-API
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.19
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Quass
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-17 00:00:00.000000000 Z
11
+ date: 2020-10-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A ruby gem client for api.swgoh.help
14
14
  email: