module EsiCharacterApi

Public Instance Methods

api_client() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 48
def api_client
  client = ESI::ApiClient.new
  client.config.access_token = current_access_token
  client
end
authorization_header() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 40
def authorization_header
  secrets = OpenStruct.new Rails.application.config_for(:secrets)
  app_id = secrets.eve_api_app_id
  app_secret = secrets.eve_api_app_secret
  auth = Base64.strict_encode64("#{app_id}:#{app_secret}")
  "Basic #{auth}"
end
current_access_token() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 35
def current_access_token
  refresh_token!
  access_token
end
refresh_token!() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 13
def refresh_token!
  return false if Time.zone.now < token_expires

  self.access_token = refresh_token_request.access_token
  self.refresh_token = refresh_token_request.refresh_token
  self.token_expires = Time.zone.now + refresh_token_request.expires_in
  save
end
refresh_token_body() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 31
def refresh_token_body
  { grant_type: 'refresh_token', refresh_token: refresh_token }.to_json
end
refresh_token_headers() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 27
def refresh_token_headers
  { 'Content-Type' => 'application/json', 'Authorization' => authorization_header }
end
refresh_token_request() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 22
def refresh_token_request
  request = Typhoeus.post('https://login.eveonline.com/oauth/token', headers: refresh_token_headers, body: refresh_token_body)
  OpenStruct.new(JSON.parse(request.body))
end
update_tokens(credentials) click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 6
def update_tokens(credentials)
  self.access_token = credentials['token']
  self.refresh_token = credentials['refresh_token']
  self.token_expires = Time.zone.at credentials['expires_at']
  save
end
wallet_api() click to toggle source
# File lib/generators/rails_eve/install/templates/esi_character_api.rb, line 54
def wallet_api
  ESI::WalletApi.new(api_client)
end