class AutoRiaApi::Base
Constants
- DEFAULT_URL
Attributes
api_key[RW]
default_url[R]
Public Class Methods
new(api_key:, url: nil)
click to toggle source
# File lib/auto_ria_api.rb, line 12 def initialize(api_key:, url: nil) raise ArgumentError, 'API key should not be empty' if blank?(api_key) @api_key = api_key @default_url = url || DEFAULT_URL end
Public Instance Methods
average_price(params)
click to toggle source
# File lib/auto_ria_api.rb, line 82 def average_price(params) request "/auto/average_price", params end
carcasses(type:, options: {})
click to toggle source
# File lib/auto_ria_api.rb, line 23 def carcasses(type:, options: {}) raise ArgumentError, '`type` should not be empty' if blank?(type) return request '/auto/bodystyles' if options[:all] group = '/_group' if options[:grouped] request "/auto/categories/#{type}/bodystyles#{group}" end
cities(region:)
click to toggle source
# File lib/auto_ria_api.rb, line 50 def cities(region:) raise ArgumentError, '`region` should not be empty' if blank?(region) request "/auto/states/#{region}/cities" end
colors()
click to toggle source
# File lib/auto_ria_api.rb, line 72 def colors request '/auto/colors' end
driver_types(type:)
click to toggle source
# File lib/auto_ria_api.rb, line 62 def driver_types(type:) raise ArgumentError, '`type` should not be empty' if blank?(type) request "/auto/categories/#{type}/driverTypes" end
fuels()
click to toggle source
# File lib/auto_ria_api.rb, line 68 def fuels request '/auto/type' end
gearboxes(type:)
click to toggle source
# File lib/auto_ria_api.rb, line 56 def gearboxes(type:) raise ArgumentError, '`type` should not be empty' if blank?(type) request "/auto/categories/#{type}/gearboxes" end
info(car_id:)
click to toggle source
# File lib/auto_ria_api.rb, line 90 def info(car_id:) raise ArgumentError, '`car_id` should not be empty' if blank?(car_id) request '/auto/info', auto_id: car_id end
marks(type:)
click to toggle source
# File lib/auto_ria_api.rb, line 31 def marks(type:) raise ArgumentError, '`type` should not be empty' if blank?(type) request "/auto/categories/#{type}/marks" end
models(type:, mark:, options: {})
click to toggle source
# File lib/auto_ria_api.rb, line 37 def models(type:, mark:, options: {}) raise ArgumentError, '`type` should not be empty' if blank?(type) raise ArgumentError, '`mark` should not be empty' if blank?(mark) return request '/auto/models' if options[:all] group = options[:grouped] ? '/_group' : '' request "/auto/categories/#{type}/marks/#{mark}/models" + group end
options(type:)
click to toggle source
# File lib/auto_ria_api.rb, line 76 def options(type:) raise ArgumentError, '`type` should not be empty' if blank?(type) request "/auto/categories/#{type}/auto_options" end
photos(car_id:)
click to toggle source
# File lib/auto_ria_api.rb, line 96 def photos(car_id:) raise ArgumentError, '`car_id` should not be empty' if blank?(car_id) request "/auto/fotos/#{car_id}", auto_id: car_id end
regions()
click to toggle source
# File lib/auto_ria_api.rb, line 46 def regions request '/auto/states' end
search(*args)
click to toggle source
# File lib/auto_ria_api.rb, line 86 def search(*args) raise NotImplementedError end
types()
click to toggle source
# File lib/auto_ria_api.rb, line 19 def types request '/auto/categories' end
Private Instance Methods
blank?(arg)
click to toggle source
# File lib/auto_ria_api.rb, line 119 def blank?(arg) respond_to?(:empty?) ? arg.empty? : !arg end
parsed(response) { |res| ... }
click to toggle source
# File lib/auto_ria_api.rb, line 111 def parsed(response) res = JSON.parse(response.body) raise ResponseError, res.dig('error').to_s if res.is_a?(Hash) && res.has_key?('error') yield res if block_given? res end
request(url, params = {}, method = :get_response)
click to toggle source
# File lib/auto_ria_api.rb, line 104 def request(url, params = {}, method = :get_response) uri = URI(default_url + url) uri.query = URI.encode_www_form(params.merge(api_key: api_key)) response = Net::HTTP.public_send(method, uri) parsed response end