class RenaultZE::Client

Constants

API_BASE_URL

Public Class Methods

new(username, password) click to toggle source
# File lib/renault_ze/renault_ze_connect.rb, line 5
def initialize(username, password)
  @username = username
  @password = password
end

Public Instance Methods

get_battery(creds) click to toggle source
# File lib/renault_ze/renault_ze_connect.rb, line 24
def get_battery(creds)
  raise "Battery - Missing token in input: #{creds}" if creds[:token].nil?
  raise "Battery - Missing VIN in input: #{creds}" if creds[:vin].nil?

  response = HTTParty.get(API_BASE_URL + "/vehicle/#{creds[:vin]}/battery",
    headers: {"Authorization": "Bearer #{creds[:token]}"}
  )
  raise "Battery - Unexpected response code: #{response}" unless response.code == 200

  result = JSON.parse response.body
  unless result["last_update"].nil?
    epoch = result["last_update"] / 1000
    result["last_update"] = epoch
    result["last_update_hours_ago"] = (Time.now - Time.at(epoch)) / 3600
  end
  return result
end
login() click to toggle source
# File lib/renault_ze/renault_ze_connect.rb, line 10
def login
  response = HTTParty.post(API_BASE_URL + "user/login",
    headers: {"Content-Type": "application/json"}, 
    body: {username: @username, password: @password}.to_json
  )
  raise "Login - Unexpected response code: #{response}" unless response.code == 200
  
  content = JSON.parse response.body
  return {
    token: content["token"],
    vin: content["user"]["vehicle_details"]["VIN"]
  }
end