Class: EveOnline::ESI::Base
- Inherits:
-
Object
- Object
- EveOnline::ESI::Base
show all
- Defined in:
- lib/eve_online/esi/base.rb
Direct Known Subclasses
Alliance, AllianceCorporations, AllianceIcon, Alliances, Character, CharacterAssets, CharacterAssetsLocations, CharacterAssetsNames, CharacterAttributes, CharacterBlueprints, CharacterCalendar, CharacterCalendarEvent, CharacterClones, CharacterContracts, CharacterCorporationHistory, CharacterFatigue, CharacterGetMail, CharacterImplants, CharacterIndustryJobs, CharacterKillmailsRecent, CharacterLocation, CharacterLoyaltyPoints, CharacterMailLabels, CharacterNotifications, CharacterOnline, CharacterOrders, CharacterPortrait, CharacterShip, CharacterSkillQueue, CharacterSkills, CharacterStandings, CharacterWallet, CharacterWalletJournal, CharacterWalletTransactions, Corporation, CorporationAllianceHistory, CorporationAssets, CorporationAssetsLocations, CorporationAssetsNames, CorporationBlueprints, CorporationIndustryJobs, CorporationKillmailsRecent, CorporationLoyaltyStoreOffers, CorporationMembers, CorporationNPC, CorporationOrders, DogmaAttribute, DogmaAttributes, DogmaEffect, DogmaEffects, Killmail, MarketGroup, MarketGroups, MarketHistory, MarketPrices, Models::Ally, Models::War, PublicContract, PublicContracts, Search, ServerStatus, UniverseAncestries, UniverseAsteroidBelt, UniverseBloodlines, UniverseCategories, UniverseCategory, UniverseConstellation, UniverseConstellations, UniverseFactions, UniverseGraphic, UniverseGraphics, UniverseGroup, UniverseGroups, UniverseMoon, UniversePlanet, UniverseRaces, UniverseRegion, UniverseRegions, UniverseStar, UniverseStargate, UniverseStation, UniverseStructures, UniverseSystem, UniverseSystemJumps, UniverseSystemKills, UniverseSystems, UniverseType, UniverseTypes, War, WarKillmails, Wars
Constant Summary
collapse
- API_HOST =
"esi.evetech.net"
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
17
18
19
20
21
22
23
24
25
|
# File 'lib/eve_online/esi/base.rb', line 17
def initialize(options = {})
@token = options.fetch(:token, nil)
@_read_timeout = options.fetch(:read_timeout, 60)
@_open_timeout = options.fetch(:open_timeout, 60)
@_write_timeout = options.fetch(:write_timeout, 60)
@language = options.fetch(:language, "en-us")
@adapter = options.fetch(:adapter, Faraday.default_adapter)
@middlewares = options.fetch(:middlewares, [])
end
|
Instance Attribute Details
#_open_timeout ⇒ Object
Returns the value of attribute _open_timeout.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def _open_timeout
@_open_timeout
end
|
#_read_timeout ⇒ Object
Returns the value of attribute _read_timeout.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def _read_timeout
@_read_timeout
end
|
#_write_timeout ⇒ Object
Returns the value of attribute _write_timeout.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def _write_timeout
@_write_timeout
end
|
#adapter ⇒ Object
Returns the value of attribute adapter.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def adapter
@adapter
end
|
#language ⇒ Object
Returns the value of attribute language.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def language
@language
end
|
#middlewares ⇒ Object
Returns the value of attribute middlewares.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def middlewares
@middlewares
end
|
#token ⇒ Object
Returns the value of attribute token.
12
13
14
|
# File 'lib/eve_online/esi/base.rb', line 12
def token
@token
end
|
Instance Method Details
#add_middleware(middleware) ⇒ Object
86
87
88
|
# File 'lib/eve_online/esi/base.rb', line 86
def add_middleware(middleware)
@middlewares << middleware
end
|
#additional_query_params ⇒ Object
115
116
117
|
# File 'lib/eve_online/esi/base.rb', line 115
def additional_query_params
[]
end
|
#base_query_params ⇒ Object
119
120
121
|
# File 'lib/eve_online/esi/base.rb', line 119
def base_query_params
[]
end
|
#connection ⇒ Object
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/eve_online/esi/base.rb', line 90
def connection
@connection ||= Faraday.new do |f|
f.["User-Agent"] = user_agent
f.["Accept"] = "application/json"
f.request :authorization, "Bearer", token if token
f.options.read_timeout = _read_timeout
f.options.open_timeout = _open_timeout
f.options.write_timeout = _write_timeout
f.use FaradayMiddlewares::RaiseErrors
middlewares.each do |middleware|
f.use middleware[:class], esi: self
end
f.response :json, content_type: "application/json"
f.adapter adapter
end
end
|
#error_limit_remain ⇒ Object
74
75
76
|
# File 'lib/eve_online/esi/base.rb', line 74
def error_limit_remain
resource.["x-esi-error-limit-remain"]&.to_i
end
|
#error_limit_reset ⇒ Object
78
79
80
|
# File 'lib/eve_online/esi/base.rb', line 78
def error_limit_reset
resource.["x-esi-error-limit-reset"]&.to_i
end
|
#http_method ⇒ Object
39
40
41
|
# File 'lib/eve_online/esi/base.rb', line 39
def http_method
:get
end
|
#open_timeout ⇒ Object
51
52
53
|
# File 'lib/eve_online/esi/base.rb', line 51
def open_timeout
connection.options.open_timeout
end
|
#open_timeout=(value) ⇒ Object
55
56
57
|
# File 'lib/eve_online/esi/base.rb', line 55
def open_timeout=(value)
connection.options.open_timeout = value
end
|
#page ⇒ Object
67
68
|
# File 'lib/eve_online/esi/base.rb', line 67
def page
end
|
#path ⇒ Object
123
124
125
|
# File 'lib/eve_online/esi/base.rb', line 123
def path
raise NotImplementedError
end
|
#query ⇒ Object
127
128
129
130
131
132
133
134
135
|
# File 'lib/eve_online/esi/base.rb', line 127
def query
hash = {}
(base_query_params + additional_query_params).each do |param|
hash[param] = public_send(param)
end
hash.reject { |_, v| v.nil? || v == "" }
end
|
#read_timeout ⇒ Object
43
44
45
|
# File 'lib/eve_online/esi/base.rb', line 43
def read_timeout
connection.options.read_timeout
end
|
#read_timeout=(value) ⇒ Object
47
48
49
|
# File 'lib/eve_online/esi/base.rb', line 47
def read_timeout=(value)
connection.options.read_timeout = value
end
|
#request_id ⇒ Object
82
83
84
|
# File 'lib/eve_online/esi/base.rb', line 82
def request_id
resource.["x-esi-request-id"]
end
|
#resource ⇒ Object
137
138
139
140
141
|
# File 'lib/eve_online/esi/base.rb', line 137
def resource
@resource ||= connection.public_send(http_method, uri)
rescue Faraday::ConnectionFailed, Faraday::TimeoutError
raise EveOnline::Exceptions::Timeout
end
|
#response ⇒ Object
143
144
145
|
# File 'lib/eve_online/esi/base.rb', line 143
def response
@response ||= resource.body
end
|
#scope ⇒ Object
31
32
33
|
# File 'lib/eve_online/esi/base.rb', line 31
def scope
raise NotImplementedError
end
|
#total_pages ⇒ Object
70
71
72
|
# File 'lib/eve_online/esi/base.rb', line 70
def total_pages
resource.["x-pages"]&.to_i
end
|
#uri ⇒ Object
107
108
109
110
111
112
113
|
# File 'lib/eve_online/esi/base.rb', line 107
def uri
@uri ||= begin
params = {host: API_HOST, path: path}
params[:query] = query.to_query if query.presence
URI::HTTPS.build(params)
end
end
|
#url ⇒ Object
27
28
29
|
# File 'lib/eve_online/esi/base.rb', line 27
def url
uri.to_s
end
|
#user_agent ⇒ Object
35
36
37
|
# File 'lib/eve_online/esi/base.rb', line 35
def user_agent
"EveOnline API (https://github.com/evemonk/eve_online) v#{VERSION}"
end
|
#write_timeout ⇒ Object
59
60
61
|
# File 'lib/eve_online/esi/base.rb', line 59
def write_timeout
connection.options.write_timeout
end
|
#write_timeout=(value) ⇒ Object
63
64
65
|
# File 'lib/eve_online/esi/base.rb', line 63
def write_timeout=(value)
connection.options.write_timeout = value
end
|