esi-sdk 1.2.0 → 2.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 +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