Sha256: ef6e7bf6492ce9a2db20664f7428429cdfc11d1e6a352ed924e580c697a8fdd4
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
module VinService BASE_URL = 'https://service.blackbookcloud.com'.freeze VEHICLE_BY_VIN_URL = "#{BASE_URL}/UsedCarWS/UsedCarWS/UsedVehicle/VIN".freeze def range_by_vin(vin, query_params = {}) url = "#{VEHICLE_BY_VIN_URL}/#{vin}" begin response = HTTParty.get(url, headers: headers, query: query_params, :debug_output => $stdout) process_response(JSON.parse(response)) rescue => e [{ error: e.to_s }, 500] end end def headers token = Base64.encode64("#{username}:#{password}") { Authorization: "Basic #{token}" } end def process_response(response) status = 200 if response['error_count'].positive? response = { error: response['message_list'][0]['description'] } status = 400 else response = map_fields(response) end [response, status] end def map_fields(response) return {} unless response && response['used_vehicles'] && response['used_vehicles']['used_vehicle_list'] vehicle_range = response['used_vehicles']['used_vehicle_list'][0] return { range: { xclean: vehicle_range['adjusted_whole_xclean'], clean: vehicle_range['adjusted_whole_clean'], average: vehicle_range['adjusted_whole_avg'], rough: vehicle_range['adjusted_whole_rough'] } } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blackbook_client-0.1.0 | lib/vin_service.rb |