esi-sdk 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/cicd.yml +17 -2
- data/.gitignore +2 -0
- data/CHANGELOG.md +17 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +21 -46
- data/README.md +0 -13
- data/Rakefile +31 -15
- data/bin/console +1 -1
- data/esi-sdk.gemspec +2 -4
- data/lib/esi/client/alliance.rb +4 -4
- data/lib/esi/client/assets.rb +8 -6
- data/lib/esi/client/bookmarks.rb +8 -4
- data/lib/esi/client/calendar.rb +4 -4
- data/lib/esi/client/character.rb +16 -15
- data/lib/esi/client/clones.rb +2 -2
- data/lib/esi/client/contacts.rb +12 -9
- data/lib/esi/client/contracts.rb +15 -9
- data/lib/esi/client/corporation.rb +31 -22
- data/lib/esi/client/dogma.rb +5 -5
- data/lib/esi/client/faction_warfare.rb +8 -8
- data/lib/esi/client/fittings.rb +3 -3
- data/lib/esi/client/fleets.rb +14 -14
- data/lib/esi/client/incursions.rb +1 -1
- data/lib/esi/client/industry.rb +13 -8
- data/lib/esi/client/insurance.rb +1 -1
- data/lib/esi/client/killmails.rb +5 -3
- data/lib/esi/client/location.rb +3 -3
- data/lib/esi/client/loyalty.rb +2 -2
- data/lib/esi/client/mail.rb +8 -8
- data/lib/esi/client/market.rb +17 -11
- data/lib/esi/client/opportunities.rb +5 -5
- data/lib/esi/client/planetary_interaction.rb +5 -4
- data/lib/esi/client/routes.rb +1 -1
- data/lib/esi/client/search.rb +2 -2
- data/lib/esi/client/skills.rb +3 -3
- data/lib/esi/client/sovereignty.rb +3 -3
- data/lib/esi/client/status.rb +1 -1
- data/lib/esi/client/universe.rb +32 -30
- data/lib/esi/client/user_interface.rb +5 -5
- data/lib/esi/client/wallet.rb +8 -6
- data/lib/esi/client/wars.rb +4 -3
- data/lib/esi/client.rb +65 -95
- data/lib/esi/errors.rb +3 -3
- data/lib/esi/version.rb +1 -1
- data/package.json +19 -0
- data/yarn.lock +3695 -0
- metadata +10 -36
data/lib/esi/client/universe.rb
CHANGED
@@ -20,7 +20,7 @@ module ESI
|
|
20
20
|
#
|
21
21
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_ancestries
|
22
22
|
def get_universe_ancestries(headers: {}, params: {})
|
23
|
-
get("/universe/ancestries/", headers: headers, params: params)
|
23
|
+
get("/universe/ancestries/", headers: headers, params: params).json
|
24
24
|
end
|
25
25
|
|
26
26
|
# Get information on an asteroid belt.
|
@@ -41,7 +41,7 @@ module ESI
|
|
41
41
|
#
|
42
42
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_asteroid_belts_asteroid_belt_id
|
43
43
|
def get_universe_asteroid_belt(asteroid_belt_id:, headers: {}, params: {})
|
44
|
-
get("/universe/asteroid_belts/#{asteroid_belt_id}/", headers: headers, params: params)
|
44
|
+
get("/universe/asteroid_belts/#{asteroid_belt_id}/", headers: headers, params: params).json
|
45
45
|
end
|
46
46
|
alias get_universe_asteroid_belts_asteroid_belt_id get_universe_asteroid_belt
|
47
47
|
|
@@ -61,7 +61,7 @@ module ESI
|
|
61
61
|
#
|
62
62
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_bloodlines
|
63
63
|
def get_universe_bloodlines(headers: {}, params: {})
|
64
|
-
get("/universe/bloodlines/", headers: headers, params: params)
|
64
|
+
get("/universe/bloodlines/", headers: headers, params: params).json
|
65
65
|
end
|
66
66
|
|
67
67
|
# Get a list of item categories.
|
@@ -80,7 +80,7 @@ module ESI
|
|
80
80
|
#
|
81
81
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_categories
|
82
82
|
def get_universe_categories(headers: {}, params: {})
|
83
|
-
get("/universe/categories/", headers: headers, params: params)
|
83
|
+
get("/universe/categories/", headers: headers, params: params).json
|
84
84
|
end
|
85
85
|
|
86
86
|
# Get information of an item category.
|
@@ -101,7 +101,7 @@ module ESI
|
|
101
101
|
#
|
102
102
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_categories_category_id
|
103
103
|
def get_universe_categories_category(category_id:, headers: {}, params: {})
|
104
|
-
get("/universe/categories/#{category_id}/", headers: headers, params: params)
|
104
|
+
get("/universe/categories/#{category_id}/", headers: headers, params: params).json
|
105
105
|
end
|
106
106
|
alias get_universe_categories_category_id get_universe_categories_category
|
107
107
|
|
@@ -123,7 +123,7 @@ module ESI
|
|
123
123
|
#
|
124
124
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_constellations_constellation_id
|
125
125
|
def get_universe_constellation(constellation_id:, headers: {}, params: {})
|
126
|
-
get("/universe/constellations/#{constellation_id}/", headers: headers, params: params)
|
126
|
+
get("/universe/constellations/#{constellation_id}/", headers: headers, params: params).json
|
127
127
|
end
|
128
128
|
alias get_universe_constellations_constellation_id get_universe_constellation
|
129
129
|
|
@@ -143,7 +143,7 @@ module ESI
|
|
143
143
|
#
|
144
144
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_constellations
|
145
145
|
def get_universe_constellations(headers: {}, params: {})
|
146
|
-
get("/universe/constellations/", headers: headers, params: params)
|
146
|
+
get("/universe/constellations/", headers: headers, params: params).json
|
147
147
|
end
|
148
148
|
|
149
149
|
# Get a list of factions.
|
@@ -162,7 +162,7 @@ module ESI
|
|
162
162
|
#
|
163
163
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_factions
|
164
164
|
def get_universe_factions(headers: {}, params: {})
|
165
|
-
get("/universe/factions/", headers: headers, params: params)
|
165
|
+
get("/universe/factions/", headers: headers, params: params).json
|
166
166
|
end
|
167
167
|
|
168
168
|
# Get information on a graphic.
|
@@ -184,7 +184,7 @@ module ESI
|
|
184
184
|
#
|
185
185
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_graphics_graphic_id
|
186
186
|
def get_universe_graphic(graphic_id:, headers: {}, params: {})
|
187
|
-
get("/universe/graphics/#{graphic_id}/", headers: headers, params: params)
|
187
|
+
get("/universe/graphics/#{graphic_id}/", headers: headers, params: params).json
|
188
188
|
end
|
189
189
|
alias get_universe_graphics_graphic_id get_universe_graphic
|
190
190
|
|
@@ -204,7 +204,7 @@ module ESI
|
|
204
204
|
#
|
205
205
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_graphics
|
206
206
|
def get_universe_graphics(headers: {}, params: {})
|
207
|
-
get("/universe/graphics/", headers: headers, params: params)
|
207
|
+
get("/universe/graphics/", headers: headers, params: params).json
|
208
208
|
end
|
209
209
|
|
210
210
|
# Get information on an item group.
|
@@ -226,7 +226,7 @@ module ESI
|
|
226
226
|
#
|
227
227
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_groups_group_id
|
228
228
|
def get_universe_group(group_id:, headers: {}, params: {})
|
229
|
-
get("/universe/groups/#{group_id}/", headers: headers, params: params)
|
229
|
+
get("/universe/groups/#{group_id}/", headers: headers, params: params).json
|
230
230
|
end
|
231
231
|
alias get_universe_groups_group_id get_universe_group
|
232
232
|
|
@@ -246,7 +246,8 @@ module ESI
|
|
246
246
|
#
|
247
247
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_groups
|
248
248
|
def get_universe_groups(headers: {}, params: {})
|
249
|
-
get("/universe/groups/", headers: headers, params: params)
|
249
|
+
responses = get("/universe/groups/", headers: headers, params: params)
|
250
|
+
responses.map(&:json).reduce([], :concat)
|
250
251
|
end
|
251
252
|
|
252
253
|
# Get information on a moon.
|
@@ -267,7 +268,7 @@ module ESI
|
|
267
268
|
#
|
268
269
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_moons_moon_id
|
269
270
|
def get_universe_moon(moon_id:, headers: {}, params: {})
|
270
|
-
get("/universe/moons/#{moon_id}/", headers: headers, params: params)
|
271
|
+
get("/universe/moons/#{moon_id}/", headers: headers, params: params).json
|
271
272
|
end
|
272
273
|
alias get_universe_moons_moon_id get_universe_moon
|
273
274
|
|
@@ -289,7 +290,7 @@ module ESI
|
|
289
290
|
#
|
290
291
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_planets_planet_id
|
291
292
|
def get_universe_planet(planet_id:, headers: {}, params: {})
|
292
|
-
get("/universe/planets/#{planet_id}/", headers: headers, params: params)
|
293
|
+
get("/universe/planets/#{planet_id}/", headers: headers, params: params).json
|
293
294
|
end
|
294
295
|
alias get_universe_planets_planet_id get_universe_planet
|
295
296
|
|
@@ -310,7 +311,7 @@ module ESI
|
|
310
311
|
#
|
311
312
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_races
|
312
313
|
def get_universe_races(headers: {}, params: {})
|
313
|
-
get("/universe/races/", headers: headers, params: params)
|
314
|
+
get("/universe/races/", headers: headers, params: params).json
|
314
315
|
end
|
315
316
|
|
316
317
|
# Get information on a region.
|
@@ -331,7 +332,7 @@ module ESI
|
|
331
332
|
#
|
332
333
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_regions_region_id
|
333
334
|
def get_universe_region(region_id:, headers: {}, params: {})
|
334
|
-
get("/universe/regions/#{region_id}/", headers: headers, params: params)
|
335
|
+
get("/universe/regions/#{region_id}/", headers: headers, params: params).json
|
335
336
|
end
|
336
337
|
alias get_universe_regions_region_id get_universe_region
|
337
338
|
|
@@ -351,7 +352,7 @@ module ESI
|
|
351
352
|
#
|
352
353
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_regions
|
353
354
|
def get_universe_regions(headers: {}, params: {})
|
354
|
-
get("/universe/regions/", headers: headers, params: params)
|
355
|
+
get("/universe/regions/", headers: headers, params: params).json
|
355
356
|
end
|
356
357
|
|
357
358
|
# Get information on a star.
|
@@ -371,7 +372,7 @@ module ESI
|
|
371
372
|
#
|
372
373
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_stars_star_id
|
373
374
|
def get_universe_star(star_id:, headers: {}, params: {})
|
374
|
-
get("/universe/stars/#{star_id}/", headers: headers, params: params)
|
375
|
+
get("/universe/stars/#{star_id}/", headers: headers, params: params).json
|
375
376
|
end
|
376
377
|
alias get_universe_stars_star_id get_universe_star
|
377
378
|
|
@@ -393,7 +394,7 @@ module ESI
|
|
393
394
|
#
|
394
395
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_stargates_stargate_id
|
395
396
|
def get_universe_stargate(stargate_id:, headers: {}, params: {})
|
396
|
-
get("/universe/stargates/#{stargate_id}/", headers: headers, params: params)
|
397
|
+
get("/universe/stargates/#{stargate_id}/", headers: headers, params: params).json
|
397
398
|
end
|
398
399
|
alias get_universe_stargates_stargate_id get_universe_stargate
|
399
400
|
|
@@ -415,7 +416,7 @@ module ESI
|
|
415
416
|
#
|
416
417
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_stations_station_id
|
417
418
|
def get_universe_station(station_id:, headers: {}, params: {})
|
418
|
-
get("/universe/stations/#{station_id}/", headers: headers, params: params)
|
419
|
+
get("/universe/stations/#{station_id}/", headers: headers, params: params).json
|
419
420
|
end
|
420
421
|
alias get_universe_stations_station_id get_universe_station
|
421
422
|
|
@@ -444,7 +445,7 @@ module ESI
|
|
444
445
|
#
|
445
446
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_structures_structure_id
|
446
447
|
def get_universe_structure(structure_id:, headers: {}, params: {})
|
447
|
-
get("/universe/structures/#{structure_id}/", headers: headers, params: params)
|
448
|
+
get("/universe/structures/#{structure_id}/", headers: headers, params: params).json
|
448
449
|
end
|
449
450
|
alias get_universe_structures_structure_id get_universe_structure
|
450
451
|
|
@@ -469,7 +470,7 @@ module ESI
|
|
469
470
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_structures
|
470
471
|
def get_universe_structures(filter: nil, headers: {}, params: {})
|
471
472
|
params.merge!("filter" => filter)
|
472
|
-
get("/universe/structures/", headers: headers, params: params)
|
473
|
+
get("/universe/structures/", headers: headers, params: params).json
|
473
474
|
end
|
474
475
|
|
475
476
|
# Get information on a solar system.
|
@@ -490,7 +491,7 @@ module ESI
|
|
490
491
|
#
|
491
492
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_systems_system_id
|
492
493
|
def get_universe_system(system_id:, headers: {}, params: {})
|
493
|
-
get("/universe/systems/#{system_id}/", headers: headers, params: params)
|
494
|
+
get("/universe/systems/#{system_id}/", headers: headers, params: params).json
|
494
495
|
end
|
495
496
|
alias get_universe_systems_system_id get_universe_system
|
496
497
|
|
@@ -512,7 +513,7 @@ module ESI
|
|
512
513
|
#
|
513
514
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_system_jumps
|
514
515
|
def get_universe_system_jumps(headers: {}, params: {})
|
515
|
-
get("/universe/system_jumps/", headers: headers, params: params)
|
516
|
+
get("/universe/system_jumps/", headers: headers, params: params).json
|
516
517
|
end
|
517
518
|
|
518
519
|
# Get the number of ship, pod and NPC kills per solar system within the last hour ending at the timestamp of the Last-Modified header, excluding wormhole space. Only systems with kills will be listed.
|
@@ -532,7 +533,7 @@ module ESI
|
|
532
533
|
#
|
533
534
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_system_kills
|
534
535
|
def get_universe_system_kills(headers: {}, params: {})
|
535
|
-
get("/universe/system_kills/", headers: headers, params: params)
|
536
|
+
get("/universe/system_kills/", headers: headers, params: params).json
|
536
537
|
end
|
537
538
|
|
538
539
|
# Get a list of solar systems.
|
@@ -552,7 +553,7 @@ module ESI
|
|
552
553
|
#
|
553
554
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_systems
|
554
555
|
def get_universe_systems(headers: {}, params: {})
|
555
|
-
get("/universe/systems/", headers: headers, params: params)
|
556
|
+
get("/universe/systems/", headers: headers, params: params).json
|
556
557
|
end
|
557
558
|
|
558
559
|
# Get information on a type.
|
@@ -573,7 +574,7 @@ module ESI
|
|
573
574
|
#
|
574
575
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_types_type_id
|
575
576
|
def get_universe_type(type_id:, headers: {}, params: {})
|
576
|
-
get("/universe/types/#{type_id}/", headers: headers, params: params)
|
577
|
+
get("/universe/types/#{type_id}/", headers: headers, params: params).json
|
577
578
|
end
|
578
579
|
alias get_universe_types_type_id get_universe_type
|
579
580
|
|
@@ -593,7 +594,8 @@ module ESI
|
|
593
594
|
#
|
594
595
|
# @see https://esi.evetech.net/ui/#/Universe/get_universe_types
|
595
596
|
def get_universe_types(headers: {}, params: {})
|
596
|
-
get("/universe/types/", headers: headers, params: params)
|
597
|
+
responses = get("/universe/types/", headers: headers, params: params)
|
598
|
+
responses.map(&:json).reduce([], :concat)
|
597
599
|
end
|
598
600
|
|
599
601
|
# Resolve a set of names to IDs in the following categories: agents, alliances, characters, constellations, corporations factions, inventory_types, regions, stations, and systems. Only exact matches will be returned. All names searched for are cached for 12 hours.
|
@@ -614,7 +616,7 @@ module ESI
|
|
614
616
|
#
|
615
617
|
# @see https://esi.evetech.net/ui/#/Universe/post_universe_ids
|
616
618
|
def post_universe_ids(names:, headers: {}, params: {})
|
617
|
-
post("/universe/ids/", headers: headers, params: params, payload: names)
|
619
|
+
post("/universe/ids/", headers: headers, params: params, payload: names).json
|
618
620
|
end
|
619
621
|
|
620
622
|
# Resolve a set of IDs to names and categories. Supported ID's for resolving are: Characters, Corporations, Alliances, Stations, Solar Systems, Constellations, Regions, Types, Factions.
|
@@ -635,7 +637,7 @@ module ESI
|
|
635
637
|
#
|
636
638
|
# @see https://esi.evetech.net/ui/#/Universe/post_universe_names
|
637
639
|
def post_universe_names(ids:, headers: {}, params: {})
|
638
|
-
post("/universe/names/", headers: headers, params: params, payload: ids)
|
640
|
+
post("/universe/names/", headers: headers, params: params, payload: ids).json
|
639
641
|
end
|
640
642
|
end
|
641
643
|
end
|
@@ -31,7 +31,7 @@ module ESI
|
|
31
31
|
# @see https://esi.evetech.net/ui/#/User Interface/post_ui_autopilot_waypoint
|
32
32
|
def post_ui_autopilot_waypoint(add_to_beginning:, clear_other_waypoints:, destination_id:, headers: {}, params: {})
|
33
33
|
params.merge!("add_to_beginning" => add_to_beginning, "clear_other_waypoints" => clear_other_waypoints, "destination_id" => destination_id)
|
34
|
-
post("/ui/autopilot/waypoint/", headers: headers, params: params)
|
34
|
+
post("/ui/autopilot/waypoint/", headers: headers, params: params).json
|
35
35
|
end
|
36
36
|
|
37
37
|
# Open the contract window inside the client.
|
@@ -59,7 +59,7 @@ module ESI
|
|
59
59
|
# @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_contract
|
60
60
|
def post_ui_openwindow_contract(contract_id:, headers: {}, params: {})
|
61
61
|
params.merge!("contract_id" => contract_id)
|
62
|
-
post("/ui/openwindow/contract/", headers: headers, params: params)
|
62
|
+
post("/ui/openwindow/contract/", headers: headers, params: params).json
|
63
63
|
end
|
64
64
|
|
65
65
|
# Open the information window for a character, corporation or alliance inside the client.
|
@@ -87,7 +87,7 @@ module ESI
|
|
87
87
|
# @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_information
|
88
88
|
def post_ui_openwindow_information(target_id:, headers: {}, params: {})
|
89
89
|
params.merge!("target_id" => target_id)
|
90
|
-
post("/ui/openwindow/information/", headers: headers, params: params)
|
90
|
+
post("/ui/openwindow/information/", headers: headers, params: params).json
|
91
91
|
end
|
92
92
|
|
93
93
|
# Open the market details window for a specific typeID inside the client.
|
@@ -115,7 +115,7 @@ module ESI
|
|
115
115
|
# @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_marketdetails
|
116
116
|
def post_ui_openwindow_marketdetails(type_id:, headers: {}, params: {})
|
117
117
|
params.merge!("type_id" => type_id)
|
118
|
-
post("/ui/openwindow/marketdetails/", headers: headers, params: params)
|
118
|
+
post("/ui/openwindow/marketdetails/", headers: headers, params: params).json
|
119
119
|
end
|
120
120
|
|
121
121
|
# Open the New Mail window, according to settings from the request if applicable.
|
@@ -143,7 +143,7 @@ module ESI
|
|
143
143
|
#
|
144
144
|
# @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_newmail
|
145
145
|
def post_ui_openwindow_newmail(new_mail:, headers: {}, params: {})
|
146
|
-
post("/ui/openwindow/newmail/", headers: headers, params: params, payload: new_mail)
|
146
|
+
post("/ui/openwindow/newmail/", headers: headers, params: params, payload: new_mail).json
|
147
147
|
end
|
148
148
|
end
|
149
149
|
end
|
data/lib/esi/client/wallet.rb
CHANGED
@@ -29,7 +29,7 @@ module ESI
|
|
29
29
|
#
|
30
30
|
# @see https://esi.evetech.net/ui/#/Wallet/get_characters_character_id_wallet
|
31
31
|
def get_character_wallet(character_id:, headers: {}, params: {})
|
32
|
-
get("/characters/#{character_id}/wallet/", headers: headers, params: params)
|
32
|
+
get("/characters/#{character_id}/wallet/", headers: headers, params: params).json
|
33
33
|
end
|
34
34
|
alias get_characters_character_id_wallet get_character_wallet
|
35
35
|
|
@@ -58,7 +58,8 @@ module ESI
|
|
58
58
|
#
|
59
59
|
# @see https://esi.evetech.net/ui/#/Wallet/get_characters_character_id_wallet_journal
|
60
60
|
def get_character_wallet_journal(character_id:, headers: {}, params: {})
|
61
|
-
get("/characters/#{character_id}/wallet/journal/", headers: headers, params: params)
|
61
|
+
responses = get("/characters/#{character_id}/wallet/journal/", headers: headers, params: params)
|
62
|
+
responses.map(&:json).reduce([], :concat)
|
62
63
|
end
|
63
64
|
alias get_characters_character_id_wallet_journal get_character_wallet_journal
|
64
65
|
|
@@ -90,7 +91,7 @@ module ESI
|
|
90
91
|
# @see https://esi.evetech.net/ui/#/Wallet/get_characters_character_id_wallet_transactions
|
91
92
|
def get_character_wallet_transactions(character_id:, from_id: nil, headers: {}, params: {})
|
92
93
|
params.merge!("from_id" => from_id)
|
93
|
-
get("/characters/#{character_id}/wallet/transactions/", headers: headers, params: params)
|
94
|
+
get("/characters/#{character_id}/wallet/transactions/", headers: headers, params: params).json
|
94
95
|
end
|
95
96
|
alias get_characters_character_id_wallet_transactions get_character_wallet_transactions
|
96
97
|
|
@@ -120,7 +121,7 @@ module ESI
|
|
120
121
|
#
|
121
122
|
# @see https://esi.evetech.net/ui/#/Wallet/get_corporations_corporation_id_wallets
|
122
123
|
def get_corporation_wallets(corporation_id:, headers: {}, params: {})
|
123
|
-
get("/corporations/#{corporation_id}/wallets/", headers: headers, params: params)
|
124
|
+
get("/corporations/#{corporation_id}/wallets/", headers: headers, params: params).json
|
124
125
|
end
|
125
126
|
alias get_corporations_corporation_id_wallets get_corporation_wallets
|
126
127
|
|
@@ -150,7 +151,8 @@ module ESI
|
|
150
151
|
#
|
151
152
|
# @see https://esi.evetech.net/ui/#/Wallet/get_corporations_corporation_id_wallets_division_journal
|
152
153
|
def get_corporation_wallets_division_journal(corporation_id:, division:, headers: {}, params: {})
|
153
|
-
get("/corporations/#{corporation_id}/wallets/#{division}/journal/", headers: headers, params: params)
|
154
|
+
responses = get("/corporations/#{corporation_id}/wallets/#{division}/journal/", headers: headers, params: params)
|
155
|
+
responses.map(&:json).reduce([], :concat)
|
154
156
|
end
|
155
157
|
alias get_corporations_corporation_id_wallets_division_journal get_corporation_wallets_division_journal
|
156
158
|
|
@@ -183,7 +185,7 @@ module ESI
|
|
183
185
|
# @see https://esi.evetech.net/ui/#/Wallet/get_corporations_corporation_id_wallets_division_transactions
|
184
186
|
def get_corporation_wallets_division_transactions(corporation_id:, division:, from_id: nil, headers: {}, params: {})
|
185
187
|
params.merge!("from_id" => from_id)
|
186
|
-
get("/corporations/#{corporation_id}/wallets/#{division}/transactions/", headers: headers, params: params)
|
188
|
+
get("/corporations/#{corporation_id}/wallets/#{division}/transactions/", headers: headers, params: params).json
|
187
189
|
end
|
188
190
|
alias get_corporations_corporation_id_wallets_division_transactions get_corporation_wallets_division_transactions
|
189
191
|
end
|
data/lib/esi/client/wars.rb
CHANGED
@@ -25,7 +25,7 @@ module ESI
|
|
25
25
|
#
|
26
26
|
# @see https://esi.evetech.net/ui/#/Wars/get_wars_war_id
|
27
27
|
def get_war(war_id:, headers: {}, params: {})
|
28
|
-
get("/wars/#{war_id}/", headers: headers, params: params)
|
28
|
+
get("/wars/#{war_id}/", headers: headers, params: params).json
|
29
29
|
end
|
30
30
|
alias get_wars_war_id get_war
|
31
31
|
|
@@ -50,7 +50,8 @@ module ESI
|
|
50
50
|
#
|
51
51
|
# @see https://esi.evetech.net/ui/#/Wars/get_wars_war_id_killmails
|
52
52
|
def get_war_killmails(war_id:, headers: {}, params: {})
|
53
|
-
get("/wars/#{war_id}/killmails/", headers: headers, params: params)
|
53
|
+
responses = get("/wars/#{war_id}/killmails/", headers: headers, params: params)
|
54
|
+
responses.map(&:json).reduce([], :concat)
|
54
55
|
end
|
55
56
|
alias get_wars_war_id_killmails get_war_killmails
|
56
57
|
|
@@ -75,7 +76,7 @@ module ESI
|
|
75
76
|
# @see https://esi.evetech.net/ui/#/Wars/get_wars
|
76
77
|
def get_wars(max_war_id: nil, headers: {}, params: {})
|
77
78
|
params.merge!("max_war_id" => max_war_id)
|
78
|
-
get("/wars/", headers: headers, params: params)
|
79
|
+
get("/wars/", headers: headers, params: params).json
|
79
80
|
end
|
80
81
|
end
|
81
82
|
end
|
data/lib/esi/client.rb
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
4
|
-
require "faraday-http-cache"
|
5
|
-
require "faraday_middleware"
|
3
|
+
require "httpx"
|
6
4
|
require "timeout"
|
7
|
-
require "typhoeus"
|
8
|
-
require "typhoeus/adapters/faraday"
|
9
5
|
|
10
6
|
require_relative "./errors"
|
11
7
|
require_relative "./client/alliance"
|
@@ -93,7 +89,7 @@ module ESI
|
|
93
89
|
520 => ESI::Errors::EveServerError
|
94
90
|
}.freeze
|
95
91
|
|
96
|
-
attr_reader :base_url, :cache, :user_agent, :version
|
92
|
+
attr_reader :base_url, :cache, :instrumentation, :logger, :user_agent, :version
|
97
93
|
|
98
94
|
# Returns a new {ESI::Client}.
|
99
95
|
#
|
@@ -103,141 +99,115 @@ module ESI
|
|
103
99
|
# @param user_agent [String] Value of the `User-Agent` header for HTTP calls
|
104
100
|
# @param base_url [String] The base URL of the ESI API
|
105
101
|
# @param version [String] The version of the ESI API
|
102
|
+
# @param logger [Object] The logger to use
|
106
103
|
# @param cache [Hash] The cache configuration to use
|
107
|
-
# @param max_concurrency [Integer] Maximum concurrent requests for pagination
|
108
104
|
# @option cache [Object] :store The cache store (e.g. `Rails.cache`)
|
109
105
|
# @option cache [Object] :logger The logger (e.g. `Rails.logger`)
|
110
106
|
# @option cache [Object] :instrumenter The instrumenter (e.g. `ActiveSupport::Notifications`)
|
111
|
-
|
107
|
+
# @param instrumentation [Hash] The instrumentation configuration to use
|
108
|
+
# @option instrumentation [String] :name The name to use for instrumentation
|
109
|
+
# @option instrumentation [Object] :instrumenter The instrumenter to use (e.g. `ActiveSupport::Notifications`)
|
110
|
+
def initialize(user_agent:, base_url: DEFAULT_BASE_URL, version: DEFAULT_VERSION, cache: {}, instrumentation: {}, logger: nil) # rubocop:disable Layout/LineLength, Metrics/ParameterLists
|
112
111
|
@base_url = base_url
|
113
112
|
@cache = cache
|
113
|
+
@instrumentation = instrumentation
|
114
114
|
@user_agent = user_agent
|
115
115
|
@version = version
|
116
|
-
@
|
116
|
+
@logger = logger
|
117
117
|
end
|
118
118
|
|
119
119
|
# Set the `Authorization` header for subsequent requests.
|
120
120
|
#
|
121
121
|
# @param token [String] The [EVE SSO JWT token](https://docs.esi.evetech.net/docs/sso/) to use
|
122
122
|
def authorize(token)
|
123
|
-
|
124
|
-
json_encoded_connection.authorization :Bearer, token
|
123
|
+
session.authentication token
|
125
124
|
end
|
126
125
|
|
127
|
-
private
|
128
|
-
|
129
|
-
ESI_RETRY_EXCEPTIONS = [Errno::ETIMEDOUT, Timeout::Error, Faraday::TimeoutError, Faraday::ConnectionFailed,
|
130
|
-
Faraday::ParsingError, SocketError].freeze
|
131
|
-
|
132
|
-
attr_reader :hydra
|
133
|
-
|
134
126
|
def delete(path, params: {}, headers: {})
|
135
|
-
|
136
|
-
|
137
|
-
response.
|
127
|
+
params.delete_if { |_, v| v.nil? }
|
128
|
+
response = session.delete("/#{version}#{path}", params: params, headers: headers)
|
129
|
+
response.raise_for_status
|
130
|
+
response
|
131
|
+
rescue HTTPX::Error
|
132
|
+
raise_error(response)
|
138
133
|
end
|
139
134
|
|
140
135
|
def get(path, params: {}, headers: {})
|
141
|
-
|
142
|
-
|
136
|
+
params.delete_if { |_, v| v.nil? }
|
137
|
+
response = session.get("/#{version}#{path}", params: params, headers: headers)
|
138
|
+
response.raise_for_status
|
143
139
|
|
144
|
-
|
145
|
-
return paginate(response, path, params, headers) if paginated?(response_headers)
|
140
|
+
return paginate(response, "/#{version}#{path}", params, headers) if paginated?(response)
|
146
141
|
|
147
|
-
response
|
142
|
+
response
|
143
|
+
rescue HTTPX::Error
|
144
|
+
raise_error(response)
|
148
145
|
end
|
149
146
|
|
150
147
|
def post(path, payload: {}, params: {}, headers: {})
|
151
|
-
|
152
|
-
|
153
|
-
|
148
|
+
params.delete_if { |_, v| v.nil? }
|
149
|
+
response = session.post("/#{version}#{path}",
|
150
|
+
params: params,
|
151
|
+
headers: headers,
|
152
|
+
json: payload)
|
153
|
+
response.raise_for_status
|
154
|
+
response
|
155
|
+
rescue HTTPX::Error
|
156
|
+
raise_error(response)
|
154
157
|
end
|
155
158
|
|
156
159
|
def put(path, payload: {}, params: {}, headers: {})
|
157
|
-
response = make_put_request(path, payload: payload, params: params, headers: headers)
|
158
|
-
raise_error(response) unless response.success?
|
159
|
-
response.body
|
160
|
-
end
|
161
|
-
|
162
|
-
def paginate(response, path, params, headers) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
163
|
-
all_items = response.body
|
164
|
-
response_headers = normalize_headers(response.headers)
|
165
|
-
page_count = response_headers["x-pages"].to_i - 1
|
166
|
-
|
167
|
-
responses = []
|
168
|
-
url_encoded_connection.in_parallel(hydra) do
|
169
|
-
page_count.times do |n|
|
170
|
-
page_number = n + 2
|
171
|
-
params = params.merge(page: page_number)
|
172
|
-
responses << make_get_request(path, params: params, headers: headers)
|
173
|
-
end
|
174
|
-
end
|
175
|
-
unless responses.all?(&:success?)
|
176
|
-
raise ESI::Errors::PaginationError.new("Error paginating request", response: response,
|
177
|
-
responses: responses)
|
178
|
-
end
|
179
|
-
|
180
|
-
all_items + responses.map(&:body).flatten
|
181
|
-
end
|
182
|
-
|
183
|
-
def make_delete_request(path, params: {}, headers: {})
|
184
160
|
params.delete_if { |_, v| v.nil? }
|
185
|
-
|
161
|
+
response = session.put("/#{version}#{path}",
|
162
|
+
params: params,
|
163
|
+
headers: headers,
|
164
|
+
json: payload)
|
165
|
+
response.raise_for_status
|
166
|
+
response
|
167
|
+
rescue HTTPX::Error
|
168
|
+
raise_error(response)
|
186
169
|
end
|
187
170
|
|
188
|
-
|
189
|
-
params.delete_if { |_, v| v.nil? }
|
190
|
-
url_encoded_connection.get("/#{version}#{path}", params, headers)
|
191
|
-
end
|
171
|
+
private
|
192
172
|
|
193
|
-
def
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
173
|
+
def paginate(response, path, params, headers) # rubocop:disable Metrics/MethodLength
|
174
|
+
response_headers = normalize_headers(response.headers)
|
175
|
+
page_count = response_headers["x-pages"].to_i
|
176
|
+
|
177
|
+
requests = (2..page_count).map do |n|
|
178
|
+
session.build_request(:get, path, params: params.merge(page: n), headers: headers)
|
199
179
|
end
|
200
|
-
|
180
|
+
responses = requests.any? ? session.request(*requests) : []
|
181
|
+
responses.unshift(response)
|
201
182
|
|
202
|
-
|
203
|
-
|
204
|
-
json_encoded_connection.put("/#{version}#{path}") do |req|
|
205
|
-
req.params = params
|
206
|
-
req.headers = req.headers.merge(headers)
|
207
|
-
req.body = payload.to_json
|
183
|
+
if responses.any?(&:error)
|
184
|
+
raise ESI::Errors::PaginationError.new("Error paginating request", responses: responses)
|
208
185
|
end
|
186
|
+
|
187
|
+
responses
|
209
188
|
end
|
210
189
|
|
211
|
-
def paginated?(
|
212
|
-
headers
|
190
|
+
def paginated?(response)
|
191
|
+
headers = normalize_headers(response.headers)
|
192
|
+
headers.key?("x-pages")
|
213
193
|
end
|
214
194
|
|
215
195
|
def normalize_headers(headers)
|
216
|
-
headers.transform_keys(&:downcase)
|
196
|
+
headers.to_h.transform_keys(&:downcase)
|
217
197
|
end
|
218
198
|
|
219
199
|
def raise_error(res)
|
220
|
-
raise (ERROR_MAPPING[res.status] || ESI::Errors::ClientError).new("(#{res.status}) #{res["error"]}",
|
200
|
+
raise (ERROR_MAPPING[res.status] || ESI::Errors::ClientError).new("(#{res.status}) #{res.json["error"]}",
|
221
201
|
response: res)
|
222
202
|
end
|
223
203
|
|
224
|
-
def
|
225
|
-
@
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
end
|
232
|
-
|
233
|
-
def json_encoded_connection
|
234
|
-
@json_encoded_connection ||= Faraday.new(base_url, headers: default_headers) do |f|
|
235
|
-
f.use :http_cache, **cache unless cache.empty?
|
236
|
-
f.request :json
|
237
|
-
f.request :retry, { exceptions: ESI_RETRY_EXCEPTIONS, max: 10, retry_statuses: [502, 503, 504] }
|
238
|
-
f.response :json
|
239
|
-
f.adapter :typhoeus
|
240
|
-
end
|
204
|
+
def session
|
205
|
+
@session ||= HTTPX.with(origin: base_url)
|
206
|
+
.with_headers(default_headers)
|
207
|
+
.plugin(:authentication)
|
208
|
+
.plugin(:persistent)
|
209
|
+
.plugin(:response_cache)
|
210
|
+
.plugin(:retries)
|
241
211
|
end
|
242
212
|
|
243
213
|
def default_headers
|
data/lib/esi/errors.rb
CHANGED
@@ -9,7 +9,7 @@ module ESI
|
|
9
9
|
|
10
10
|
# Base class for ESI client errors.
|
11
11
|
class ClientError < Error
|
12
|
-
attr_reader :response
|
12
|
+
attr_reader :response, :responses
|
13
13
|
|
14
14
|
def initialize(msg, response:)
|
15
15
|
super(msg)
|
@@ -22,8 +22,8 @@ module ESI
|
|
22
22
|
class PaginationError < ClientError
|
23
23
|
attr_reader :responses
|
24
24
|
|
25
|
-
def initialize(msg,
|
26
|
-
super(msg, response:
|
25
|
+
def initialize(msg, responses:)
|
26
|
+
super(msg, response: nil)
|
27
27
|
|
28
28
|
@responses = responses
|
29
29
|
end
|
data/lib/esi/version.rb
CHANGED