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 +4 -4
- data/CHANGELOG.md +15 -1
- data/Gemfile.lock +1 -1
- data/README.md +12 -6
- data/lib/SWGOH/API.rb +35 -0
- data/lib/SWGOH/API/CLIENT/client.rb +219 -27
- data/lib/SWGOH/API/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08c450a93858d8f9ecad0bee9c8fb33c84b779d29aa5a750e535261b5e869fb5'
|
4
|
+
data.tar.gz: 4f86c4f8f9512351227f8e428dabf39992ca1ebdd449be3b9938ee8fdfc3ae60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f25e29323f14dab0e2fdb93fa67e8583d23a955f557622670c32242a1d148477cf7ada91420ae23148c8419183470f092eb776366fb7d442c959c0d1b2c85b7d
|
7
|
+
data.tar.gz: 5e766736283e5e0430b0dafeeb6ed6b2cd2f9f95ce0dc7d406d2b8c979a193cfbd3510c4d9aece83164ba76aea93bbce18dca3b8d73665e9fed45b73af887544
|
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
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
|
data/Gemfile.lock
CHANGED
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.
|
36
|
+
After checking out the repo, run `bin/setup` to install dependencies.
|
37
37
|
|
38
|
-
To
|
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
|
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
|
|
data/lib/SWGOH/API.rb
CHANGED
@@ -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
|
40
|
-
|
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
|
46
|
-
|
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
|
52
|
-
|
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
|
58
|
-
|
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
|
64
|
-
request(SWGOH::API::PATH::ZETAS
|
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
|
70
|
-
request(SWGOH::API::PATH::SQUADS
|
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
|
76
|
-
request(SWGOH::API::PATH::EVENTS
|
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
|
82
|
-
|
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
|
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
|
-
|
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 [
|
120
|
-
def request_data
|
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
|
-
}
|
318
|
+
}
|
127
319
|
end
|
128
320
|
|
129
321
|
def log_error(result)
|
data/lib/SWGOH/API/version.rb
CHANGED
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.
|
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-
|
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:
|